2011-11-28 63 views
3

我發現了一段代碼最近,其執行以下操作:字符串轉換在Java中

String s = ... // whatever 
... 
s = new String(s.getBytes(myEncoding), myEncoding); 

對我來說,這似乎是完全無感。

是否有可能在某些情況下(某些特定的語言環境設置,使用技術等的組合),此代碼會做一些有用的事情?

在此先感謝

回答

2

是的,該代碼通常是無稽之談。是的,有可能代碼可能對字符串做了「某些事情」(可能不是什麼好事)。一般來說,如果您已經錯誤地將字節轉換爲字符,嘗試重新轉換很少會給您合法的結果。 (可能會出現字符編碼的正確組合可能起作用的孤立情況)。

+1

這可能只是壞的語義,但重要的代碼。 myEncoding可以引用一個自定義的CharsetEncoder。 CharsetEncoder可以用自定義字節數組替換未知字符,然後在重新編碼時將其去掉。你可能可以使用自定義的CharsetEncoder來實現類似html轉義的功能。如果是這樣的話,這段代碼似乎太聰明瞭,因爲它自己很好。我建議用更好的方法替換編碼解碼行。 – ccoakley

+0

2 ccoakley myEncoding是普通的ISO8859-1編碼 – edio