3
我發現了一段代碼最近,其執行以下操作:字符串轉換在Java中
String s = ... // whatever
...
s = new String(s.getBytes(myEncoding), myEncoding);
對我來說,這似乎是完全無感。
是否有可能在某些情況下(某些特定的語言環境設置,使用技術等的組合),此代碼會做一些有用的事情?
在此先感謝
我發現了一段代碼最近,其執行以下操作:字符串轉換在Java中
String s = ... // whatever
...
s = new String(s.getBytes(myEncoding), myEncoding);
對我來說,這似乎是完全無感。
是否有可能在某些情況下(某些特定的語言環境設置,使用技術等的組合),此代碼會做一些有用的事情?
在此先感謝
是的,該代碼通常是無稽之談。是的,有可能代碼可能對字符串做了「某些事情」(可能不是什麼好事)。一般來說,如果您已經錯誤地將字節轉換爲字符,嘗試重新轉換很少會給您合法的結果。 (可能會出現字符編碼的正確組合可能起作用的孤立情況)。
這可能只是壞的語義,但重要的代碼。 myEncoding可以引用一個自定義的CharsetEncoder。 CharsetEncoder可以用自定義字節數組替換未知字符,然後在重新編碼時將其去掉。你可能可以使用自定義的CharsetEncoder來實現類似html轉義的功能。如果是這樣的話,這段代碼似乎太聰明瞭,因爲它自己很好。我建議用更好的方法替換編碼解碼行。 – ccoakley
2 ccoakley myEncoding是普通的ISO8859-1編碼 – edio