3
我在Oracle DB中將數據類型存儲爲blob(XML)。 我正在檢索此列並轉換爲字節[],然後轉換爲字符串。我做了一些字符串操作並將其轉換爲UTF-8格式並插入到數據庫中。一些特殊字符被插入爲垃圾字符。我真的不知道我做錯了什麼? 任何想法/幫助將不勝感激。將字符串轉換爲UTF-8字符時的奇怪行爲
這裏是源代碼。
// DB COnnection
// Get the resultset
Blob data = (Blob) rs.getBlob(3);
byte[] bdata = data.getBytes(1,(int)data.length());
// Converting to String and doing operation
s = new String(bdata);
// String operation
// Before inserting into DB, converting to UTF-8 format.
byte[] dataAsByteArray = s.getBytes("UTF8");
updateStmt.setBinaryStream(1,
new ByteArrayInputStream(dataAsByteArray),dataAsByteArray.length);
commit();
你說得對。我應該使用XML API來讀取和解釋標題。 我正在使用Javolution庫,它有一個名爲UTF8StreamReader的類。 我想用更快的方式上面的代碼填充一些虛擬/假數據用於測試目的,但似乎我必須堅持原來的方式:) – Anand 2010-01-27 00:24:06
@布賴恩·阿格紐 - 規範名稱爲Sun Java 6級的編碼這裏列出: http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html – McDowell 2010-01-27 11:12:42
@McDowell - 謝謝你。昨晚我找不到 – 2010-01-27 11:43:16