2012-04-04 39 views
-2

執行mysql查詢時我得到了下面的unicode字符串。unicode中的字符串替換不起作用

\ u30ad \ u30e3 \ u30f3 \ u30bb \ u30eb

我必須嘗試打印上面的字符串已無法正常改爲UTF字符。 所以,我試着將「\」替換爲「\」。

str.replace(「\\\\」,「\\」); //未正確替換

替換函數在我的方案中不起作用。

我如何在我的情況下將「\\」替換爲「\」。

對不起,我的英語!

有什麼想法?

+4

'我如何將「\」替換爲「\」'。來吧! – 2012-04-04 10:19:55

+0

這工作正常。 – 2012-04-04 10:20:31

+0

@ Eng.Fouad對不起..「\\」到「\」 – sprabhakaran 2012-04-04 10:27:02

回答

2

字符串是不可變的,一旦你創建它就不能改變它。需要分配是從replace()方法返回到一個新的String參考的對象(或使用同一參考):

str = str.replace("\\\\","\\"); 
+0

String x =「\\ u30ad \ u30e3 \\ u30f3 \\ u30bb \\ u30eb」; x = x.replace(「\\\\」,「\\」); print(x) – sprabhakaran 2012-04-04 10:32:21

+0

上面的代碼不是打印utf8字符 – sprabhakaran 2012-04-04 10:32:52

+0

你到底需要什麼?爲什麼要替換「\ u」特殊字符的「\」? – 2012-04-04 10:46:59

1

String文字等"\u30ad\u30e3\u30f3\u30bb\u30eb"被轉換爲Unicode字符串(「キャンセル」)由Java編譯器。這意味着它只適用於放在源文件中的字符串。

如果您收到來自數據庫的字符串:\u30ad\u30e3\u30f3\u30bb\u30eb,則將\視爲任何其他字符。如果你刪除它,你只會得到:u30adu30e3u30f3u30bbu30eb

相反,您應該編寫一個方法(或使用現有的方法),它將在String中找到所有轉義序列(\u????)並將它們轉換爲真實字符。例如,請參閱here

+0

感謝哥們:) ......它工作正常 – sprabhakaran 2012-04-04 13:04:01