Java中的UTF-8字符串解码,平假名符号变得不可读

时间:2018-08-23 16:48:55

标签: java encoding utf-8 decoding

我创建以下代码以将具有给定字符集的字符串转换为其他字符。请在下面看到它

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个字节。但是不知道如何解决该问题。

有人知道如何解决吗?

0 个答案:

没有答案