Android 判断字符串是否乱码

Android2年前 (2021)更新
888 0
125啦读书导航,我的单页导航

前言

前文《[代码片段]使用jaudiotagger解析ID3信息》中知道,解析出的ID3信息的文本存在乱码,部分ID3信息可以通过文本编码转换,但还是存在部分文本无法转成功。

因此在项目中考虑直接过滤依旧是乱码的,同时把ID3信息置为未知。

正文

下面的方法可以转换jaudiotagger解析出来的ID3信息,只能解决一部分。

/**
     * @param content
     * @return
     */
    public String changeStringEncode(String content) {
        if (Charset.forName(StandardCharsets.ISO_8859_1.toString()).newEncoder().canEncode(content)) {
            try {
                content = new String(content.getBytes(StandardCharsets.ISO_8859_1.toString()), "GB2312");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return content;
    }

由于文本乱码,在音乐信息里显示就不太好看,最后我们直接过滤乱码,显示未知。

显示判断是否是乱码:

    public static boolean hasMessyCode(String content) {
        return !Charset.forName("GBK").newEncoder().canEncode(content);
    }

经过一定的测试,这个确实可以判断是否是乱码。

参考文章

  1. java中如何判断字符串是否乱码
  2. [代码片段]使用jaudiotagger解析ID3信息

© 版权声明
125啦读书导航,我的单页导航

相关文章

125啦读书导航,我的单页导航

暂无评论

暂无评论...