我有一些匈牙利文本,我希望它用UCS2编码编码。
String stringEncoding = "UCS-2";
String contentHardCoded = new String("szigorúan bejelentkezési azonosításhoz".getBytes(),stringEncoding);但是我得到了下面的例外
Exception in thread "main" java.io.UnsupportedEncodingException: UCS-2
at java.lang.StringCoding.decode(StringCoding.java:170)
at java.lang.String.<init>(String.java:443)
at java.lang.String.<init>(String.java:515)
at com.gtl.mindmatics.sms.Main.sendSMS(Main.java:108)
at com.gtl.mindmatics.sms.Main.main(Main.java:180)
Java Result: 1有什么不对的?
编辑
我使用下面的命令来运行我的jar实际上我的命令如下
java -Dfile.encoding=UCS-2 -cp MyApp.jar com.sms.Main "9876543210" “UCS-2” > testApp.log
而且应该使用什么正确的编码,我用的是UTF-8,但是输出不正确。
发布于 2014-04-16 05:47:26
您做错了;String是一组字符,仅此而已。你在这里所做的是:
因此,您的字符串将完全损坏。String没有编码。
有关更多详细信息,请参阅这里。
至于UCS-2,它已经被UTF-16取代了.你想用UTF-16代替。
请注意,您必须指定endianness,这对于UTF-16与UTF-8不同。使用:
StandardCharsets.UTF_16LE(或大端点的BE ),或者,如果您仍然使用Java6或更低版本:
Charset.forName("UTF-16LE") // or BEhttps://stackoverflow.com/questions/23100894
复制相似问题