字母變成「ë」
回答
ASP.Net(您的服務器端應用程序)和SQL Server都支持Unicode。他們可以處理不同的語言,不同的字符集:
http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx
內部,背後ASP.NET Web頁面的代碼處理所有字符串數據 爲Unicode。您可以設置頁面如何對其響應進行編碼,這會在HTTP標頭的Content-Type部分設置CharSet屬性。 這使瀏覽器能夠確定沒有元標記或 必須從內容中推導出正確的編碼的編碼。您也可以使用 設置頁面解釋請求中發送的信息的方式。
最後,您可以設置ASP.NET如何解釋頁面 本身的內容 - 換句話說,就是在 磁盤上編碼物理.aspx文件。如果您設置文件編碼,則所有的ASP頁面都必須使用該 編碼。 Notepad.exe可以保存在當前的系統ANSI代碼頁,UTF-8或UTF-16(也稱爲Unicode)中編碼的文件。 ASP.NET運行時可以區分這三種編碼。物理ASP.NET文件的 編碼必須與@ Page encoding屬性中文件中指定的編碼 匹配。
這篇文章也是有幫助的:
http://support.microsoft.com/kb/893663
這種 「喬爾 - 上 - 軟件」 的文章是一個絕對必讀
請閱讀所有三篇文章,並告訴我們是否有幫助。
您需要HtmlEncode
和HtmlDecode
功能。
SQL Server與ë
和任何其他本地或「不尋常」字符都很好,但HTML不是。這是因爲有些字符在HTML中有特殊含義。最好的例子是<
或>
這對HTML語法來說很重要,但還有很多。由於某種原因,ë
也是特殊的。爲了能夠顯示像這樣的字符,它們在傳輸之前需要被編碼爲HTML。傳輸意味着也發送到瀏覽器。
因此,雖然您在瀏覽器中看到ë
,但您的應用正在使用編碼版本處理它,該編碼版本爲ë
,並且它始終以包括數據庫的此格式顯示。如果你想把ë
作爲ë
保存在SQL Server中,你需要先解碼它。請記住在您的網頁上顯示之前將其重新編碼爲ë
。
分別在保存/顯示之前使用這些函數對所有文本進行解碼/編碼。他們只會轉換特殊字符,而不會留下一切:
string encoded = HttpUtility.HtmlEncode("Noël")
string decoded = HttpUtility.HtmlDecode("Noël")
對編碼文本進行操作還有另一個重要原因 - JavaScript注入。這是對您的網站的一種攻擊,意圖通過將JavaScript塊放入編輯/備忘框來破壞它,希望它們能夠在別人的瀏覽器上的某個點執行。如果您對從UI獲得的所有文本進行編碼,那麼這些JavaScript永遠不會運行,因爲它們將被視爲文本而不是可執行代碼。
- 1. 如何將每個字母的字母變成大寫字母,但不是字母「of」,「and」,「it」,「for」?
- 2. 生成英文字母的字母
- 3. 使用Java將字母變成數字對應
- 4. 生成字母組合
- 5. 自動生成字母
- 6. 添加字母組成詞
- 7. 複選框生成字母
- 8. 在Java中生成字母
- 9. 自動練成字母
- 10. jQuery UI自動完成忽略非字母數字字母
- 11. RandomStringGenerator生成字母數字字符串
- 12. 生成的字母數字字符串
- 13. 變化列字母下來
- 14. 字母變更代碼
- 15. 要改變字母/ C
- 16. ReadFile和變化字母
- 17. 的QuickTime - AVID,ITU-R 601(16-235)選項
- 18. 分割字符串轉換成字母
- 19. 生成字母數字串順序
- 20. 自動生成字母數字ID
- 21. 將字符串切成字母
- 22. 生成字母數字員工ID
- 23. 轉換字母表成數字
- 24. 來自拉丁字母的字母的生成算法?
- 25. 用小寫字母寫成小寫字母大寫
- 26. 通過在字母表中的位置生成字母
- 27. 西裏爾字母突然變成問號
- 28. AJAX MaskedEditExtender將輸入字母變成大寫
- 29. 成員變量的首字母縮寫命名約定
- 30. 含有類CString成員變量只存儲第一個字母
你的特殊字符會變成ascii,在大多數情況下這不是什麼大問題,除非它引起你的錯誤。 – 2012-04-26 17:16:10