gpt4 book ai didi

UCS-2 的 java.io.UnsupportedEncodingException

转载 作者:行者123 更新时间:2023-12-02 05:55:43 25 4
gpt4 key购买 nike

我有一些匈牙利文本,我希望使用 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 但输出不正确。

最佳答案

你做错了; String 是一组字符,仅此而已。您在这里所做的是:

  • 您将获得由当前 JVM 编码解码的字符串字节,
  • 您使用不同的编码重新编码这些字节。

因此,您的字符串将完全损坏。 String 没有编码

参见here了解更多详情。

<小时/>

至于 UCS-2,它已被 UTF-16 取代。您想改用 UTF-16。

请注意,您必须指定字节顺序,这对于 UTF-16 很重要,与 UTF-8 不同。使用:

StandardCharsets.UTF_16LE

(或 BE 表示大端),或者,如果您仍然使用 Java 6 或更低版本:

Charset.forName("UTF-16LE") // or BE

关于UCS-2 的 java.io.UnsupportedEncodingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com