我创建以下代码以将具有给定字符集的字符串转换为其他字符。请在下面看到它
public static String convertCharsetOfTheString(String strToConvert,String targetCharsetName) throws UnsupportedEncodingException {
CharsetDetector detector = new CharsetDetector();
detector.setText(strToConvert.getBytes());
CharsetMatch detect = detector.detect();
String currentCharsetName = detect.getName();
Charset currentCharset=Charset.forName(currentCharsetName);
Charset targetCharset=Charset.forName(targetCharsetName);
ByteBuffer wrap = ByteBuffer.wrap(strToConvert.getBytes(targetCharsetName)); //.wrap(strToConvert.getBytes());
CharBuffer decode = currentCharset.decode(wrap);
ByteBuffer encode = targetCharset.encode(decode);
return new String(encode.array(),targetCharsetName);
}
对于某些符号,我有编码/解码错误。即平假名字母じ变得不可读。
我认为这是因为平假名具有3个字节而不是2个字节。但是不知道如何解决该问题。
有人知道如何解决吗?