如何在utf-16 unicode中转换utf-8字符 - scala

时间:2017-06-26 04:19:43

标签: java scala unicode utf-8 utf-16

参考:https://www.branah.com/unicode-converter

我是scala和java的新手,并尝试使用scala编写.properties文件(使用少数语言,如中文,法语,德语等)进行国际化功能。为此,我使用以下代码:

for ((key, val) <- jsonData.get.asInstanceOf[Map[String, String]]) {
    var file: PrintWriter = null
    file = new PrintWriter(filepath, "UTF-8")
    prop.setProperty(key, val)
    prop.store(file, "")
    file.close()
}

所以这段代码正在运行,但它的写文件采用UTF-8格式,如:

传播特征设计师考虑测量 düşünce

在浏览器中无法正常呈现,因此我想将其转换为UTF-16 unicode格式,如:

这是一个很好的选择 \ u0064 \ u00fc \ u015f \ u00fc \ u006e \ u0063 \ u0065

根据此转换器:https://www.branah.com/unicode-converter

我无法访问客户端,因此无法在此处发布该代码,但我确信它与通过ajax从.properties文件中获取数据并在浏览器中呈现数据相同。

如何将其转换为utf-16 unicode,以便在浏览器中正确呈现。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以为Charset

使用相同的代码和用户"UTF-16"
for ((key, val) <- jsonData.get.asInstanceOf[Map[String, String]]) {
    var file: PrintWriter = null
    file = new PrintWriter(filepath, "UTF-16")
    prop.setProperty(key, val)
    prop.store(file, "")
    file.close()
}

请检查支持的java Charset https://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html

答案 1 :(得分:0)

自己解决了。

PrintWriter替换为var file: File = null file = new File(filepath) var fos: FileOutputStream = null fos = new FileOutputStream(file) prop.setProperty(key, val) prop.store(fos, "") 并且有效:)

__VA_ARGS__

感谢@Jon Skeet的帮助。