我正在进行一个编程项目,需要将包含非ASCII字符的单词(如'ä'、'ö'或'ü')转换为包含Unicode码(\u00F6
)的单词/字符串。
为了实现这个目标,我想尝试一下“新”的Java Streams。到目前为止,我已经能够获取所有无法适应默认ASCII字符集并因此需要替换的字符的索引。
public static void replaceUmlauts() {
char[] chars = "persönlich".toCharArray();
int[] ind = IntStream.range(0, chars.length).filter(i -> chars[i] > 128).toArray();
}
然而,我并没有找到一种优雅地将已确定的索引处的umlauts替换为它们各自的Unicode表示的方法。为了保持一致性,我想找到一个流式解决方案,但我也愿意接受其他有效的解决方案来解决这个问题。
如果有完全不同的、甚至更简单的方法来解决整个问题,那将非常欣赏。
{somename}.properties
文件中。由于我遇到了一些编码问题(Windows机器使用CP1252,其他系统使用UTF-8),因此我希望像persönlich
这样的字符串被持久化为pers\u00F6lich
,以避免以后出现任何问题。虽然在Java内部处理persönlich
和类似单词的工作很好,但我强烈认为对于持久性来说,显式转换实际上是有用的。 - Marco N.