TextView中的Android问号?

时间:2014-05-22 22:30:37

标签: android character-encoding non-ascii-characters file-encodings

我在Android活动的TextView中有重音字符的问题。渲染显示问号而不是字符“è”和“à”。流程是:从网络资源获取midi文件 - >提取歌词 - >把歌词放在TextView中。我不明白编码或字符集是否有问题。我尝试使用“UTF-8”或“ISO ...”对文件进行编码,但每次尝试都失败了。你能救我吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

在将歌词放入文本视图之前,您可以尝试这样的事情:

newLyrics = new String(oldString.getBytes("UTF-8"),"UTF-8");

答案 1 :(得分:0)

检查一次:

https://www.csie.ntu.edu.tw/~r92092/ref/midi/

Midi文件基本上包含二进制格式+ ascii值作为标题数据,所以如果你可以转换它并表示它像 - 如果您可以将该二进制格式编码为base64,则会将任何数据转换为ascii安全文本

答案 2 :(得分:0)

您可以尝试以下代码:

//String encode function
fun encodeEmoji(message: String): String {
    try {
        return URLEncoder.encode(
            message,
            "UTF-8"
        )
    } catch (e: UnsupportedEncodingException) {
        return message
    }

}


//String decode function
fun decodeEmoji(message: String): String {
    val myString: String? = null
    try {
        return URLDecoder.decode(
            message, "UTF-8"
        )
    } catch (e: UnsupportedEncodingException) {
            return message
    }

}

功能使用

    var string:String=CommonMethod.encodeEmoji("your string")

    string=CommonMethod.decodeEmoji(string)