将特殊字符转换为Unicode转义字符 Scala

3

您好,是否有可能将像 Ä、Ö、Ü 等特殊字符转换为 Unicode 转义字符?
例如,Ä 可以变为 \u00C4
我需要这个来将文件转换为可翻译的格式。在服务器端,我有一个键值对的翻译列表:

hometown = München  

我想将其解析为de.properties文件,以便在我的Javascript应用程序中使用它。
.properties文件的定义是ISO/IEC 8859-1编码http://en.wikipedia.org/wiki/.properties
因此,我必须将键/值对解析为:

hometown = M\u00FCnchen  

这些转义字符能否在Scala/Java中获取?
编辑:
获取字符的Unicode值 对我无效。例如,对于字符Ä,我得到了\u017D,但我需要获得\u00C4
我的编辑:
啊,好吧,问题是我试图在Scala REPL上尝试它。当我尝试时
println( "\\u" + Integer.toHexString('Ä' | 0x10000).substring(1) )

它会打印出正确的转义字符\u00C4


这里有一个关于Java的类似问题:https://dev59.com/4nE95IYBdhLWcg3wp_gg - Piotr Rudnicki
1个回答

1
不要手动进行转义,使用JVM为处理.properties文件提供的工具。例如,创建一个所需的Properties实例,然后使用Properties#store方法,该方法会自动处理转义。
回应编辑:如果输出的是\u017D,则你没有Ä - 检查你的项目源编码和任何读取数据的编码设置。

Properties类是一个非常好的提示!唯一的问题是,它不能转义ÄÖÜ。我尝试像这样存储它:prop.store(writer,“DoIt”)。 - B. Kemmer
嗯,有趣 - 在我的系统上它确实转义了那些字符。也许它不会为你转义ÄÖÜ的原因是因为它们具有完美的ISO-8859-1(有时称为“latin1”,但这个术语是模糊的)代码点? - lmm
1
啊哈,好的,store(Writer writer, String comments) 方法不转义,但是 store(OutputStream out, String comments) 方法会转义! - B. Kemmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接