android utf-8 显示韩文的小坑 && 小技巧

android utf-8 显示韩文的小坑 && 小技巧

今天遇见了一个非常蛋疼的问题,是关于韩文显示的。服务器给我返回的数据中,韩文是这么表示的 나랑 갈래 ,我的目标是在 android 中显示出其所代表的韩文字符 나랑 갈래 。但是我在 android 中用 UrlDecoder.decoder() 解码,发现输出的依然是 나랑 갈래

经过冷静的分析以及利用一些在线编码转换工具,我发现, 나랑 갈래 肯定是 unicode 的,但是这种格式只是在前端、浏览器端使用的。如果我对 나랑 갈래 中的数字经过自己计算得到16进制的结果(比如: "\uc0ac"),然后用这个结果在 java 中调用 URLDecoder.decode(testString) 就非常自然的输出了正确的韩文字符。为了方便起见,调试的时候用 groovy 来进行的。不得不说,在这种情况下,groovy 在进行试验确实比用 android 或者 java 方便多了。
问题产生原因大致明白了,解决方案自然呼之欲出:

  1. 自己解析一下服务器返回的结果。然后我们用代码将这些个十进制的都转化成对应的十六进制的。
  2. 这个算是比较鸡贼 && 比较投机取巧的方法。也是我最终采用的方法。。。使用 Html.fromHtml(testString).toString() 。当然这种方法也是有一定的理论依据的。那就是,既然这种 &#; 是前端们、浏览器们能识别的,那我们就模拟一下浏览器显示一下不就好了吗?

你可能感兴趣的:(android utf-8 显示韩文的小坑 && 小技巧)