我编写了简单的转换代码,将 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[]
关于java - 将 UTF-8 转换为 Shift-JIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51854216/