gpt4 book ai didi

java - 将 UTF-8 转换为 Shift-JIS

转载 作者:行者123 更新时间:2023-12-01 17:49:38 24 4
gpt4 key购买 nike

我编写了简单的转换代码,将 UTF-8 转换为日语字符。

    private static String convertUTF8ToShiftJ(String uft8Strg) {
String shftJStrg = null;
try {

byte[] b = uft8Strg.getBytes(UTF_8);
shftJStrg = new String(b, Charset.forName("SHIFT-JIS"));
logger.info("Converted to the string :" + shftJStrg);
} catch (Exception e) {
e.printStackTrace();
return uft8Strg;
}
return shftJStrg;
}

但它给出了输出错误,

convertUTF8ToShiftJ START !!
uft8Strg=*** abc000.sh ����started�
*** abc000.sh ��中�executing...�
*** abc000.sh ����ended��*

是否有人知道我在哪里犯了错误或需要一些额外的逻辑,这将非常有帮助!

最佳答案

你的String已经是一个String,所以你的方法是“错误的”。 UTF8 是一种 byte[] 编码,可以在 Java 中转换为 String

它应该是:

private static byte[] convertUTF8ToShiftJ(byte[] uft8) {

如果要将 UTF8 byte[] 转换为 JIS byte[]:

private static byte[] convertUTF8ToShiftJ(byte[] uft8) {
String s = new String(utf8, StandardCharsets.UTF_8);
return s.getBytes( Charset.forName("SHIFT-JIS"));
}

String 稍后可以通过 mystring.getBytes(encoding) 转换为 byte[]

请参阅The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)了解更多详情。

关于java - 将 UTF-8 转换为 Shift-JIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51854216/

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