Asp.NET 所開發的網頁無法輸入日文字或其它Unicode字型

之前已經有發現到類似的問題,是在網頁中輸入日文字所造成的問題。當時的情況是只要輸入請假事由的字串中包含日文字型就會出現以下的訊息。「偵測到來自用戶端的潛在危險 Request.Form 值.」 ,雖然可以透過取消字串驗證的方式,即可以讓日文字以unicode的方式存入後端。但最終還是沒繼續採用此方式(決得有點不安全)。

作法:在需要輸入日文頁面中的「Page」標籤中加上一屬性值「ValidateRequest="false"」,例如: <%@ Page ValidateRequest="false"%>。

而下面是比較好的做法就是將網站編碼格式改為「UTF-8」這樣的作法也比較一勞永逸。

作法:編輯 web.config 設定 globalization 其中的編碼屬性

<configuration>
  <system.web>
    <globalization
    fileEncoding="utf-8"
    requestEncoding="utf-8"
    responseEncoding="utf-8"
    culture="en-US"
    uiCulture="de-DE"
    />
  </system.web>
</configuration>

注意事項:雖然完成上述的設定後網頁就會以UTF-8的編碼格式傳送至前端,但是網頁呈現出來的文字很有可能會出現亂碼。因為在建立或是編輯程式碼檔案或是前端aspx檔案時,所用的編碼格式是BIG5的而造成。

解決方法:用notepad++開啟有亂碼出現的前端頁面碼ASPX的檔案或是後端的BindCode檔案,這就要看你的中文亂碼是安在哪個檔案上頭的。notepad++開啟檔案後,選擇編碼 >> 轉換至 utf-8 碼格式。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s