我試圖解決的問題是: 我們的應用程序的用戶是複製/粘貼來自Windows相關文檔(例如Word)的字符,而我們的應用程序無法識別單引號或雙引號或項目符號。爲什麼我的UTF-8編碼數據不能保留?UTF-8?編碼?
這是我到目前爲止所採取讓這些數據轉化爲UTF格式的步驟:
內servers.xml,在連接器的標籤,我添加的屬性的URIEncoding =「UTF-8」。
在存儲輸入的bean中,我創建了一個byte []並在String中傳入並保存inputNote文本,然後將其轉換爲UTF-8。然後將UTF-8轉換後的字符串傳遞迴inputTextText字符串。請直接在下面查看濃縮代碼。
byte[] bytesInUTF8inputNoteText = inputNoteText.getBytes("UTF-8"); inputNoteText = new String(bytesInUTF8inputNoteText, "UTF-8"); this.var = inputNoteText;
在充有從該數據庫查詢保持結果的變量設定器: setNoteText(noteText)的說明數據從數據庫查詢進入UTF8格式字節轉換,然後將其轉換回一個字符串並將其設置爲String noteText屬性。也在下面。
public void setNoteText(String noteText) throws UnsupportedEncodingException { byte[] bytesInUTF8inputNoteText = noteText.getBytes("UTF-8"); String noteTextUTF8 = new String(bytesInUTF8inputNoteText, "UTF-8"); this.noteText = noteTextUTF8;}
在SQL Server中,我從文字更改的數據類型爲nvarchar(MAX)存儲到Unicode數據,儘管這是一個不同類型的Unicode的。
我看到當我複製/粘貼從MS Word文檔到我們的JSF輸入文本框:
在Eclipse,如果我在bean來監視他的財產,一旦該字符串數據屬性已轉換爲UTF-8,所有字符均採用UTF-8格式。當我發佈到SQL Server時,保存在nvarchar(max)數據類型中的數據字符串會正確顯示所有UTF-8格式的字符。然後,當返回resultSet並使用從db查詢返回的字符串填充持有屬性時,它還顯示所有UTF-8格式正確....但是,...之間的正確字符串值之間坐在與JSF頁面和JSF頁面相關的屬性中,順便說一句,值是未格式化的,以便我看到問號,我應該看到單引號和雙引號以及項目符號點。我希望有人遇到過這種類型的問題,並且可以闡明我需要做些什麼來解決這個問題。似乎有點像JSF的錯誤,預先感謝您的輸入!
SQL Server沒有對UTF-8的本機支持。請參閱[這篇文章](http://support.microsoft.com/kb/232580)。 –