我需要将Java字符串转换为ISO/IEC 8859-1,以便节省空间/使每个字符使用1个字节。
但是,在使用
getBytes(StandardCharsets.ISO_8859_1)
一些字符,如š
和ž
,稍后会打印为?
。它们不是ISO/IEC8859-1的一部分,但我希望有一种自动的方法来充分替换这些字母,如:š-->s
,ž-->z
,对于不属于ISO/IEC8859-1的UTF-16的每个字母。
这样的事情有可能吗?
编辑:我使用了Erick Robertson的解决方案。
发布于 2018-09-24 10:07:34
有一个String.replaceAll()方法,但是如果你想保持对哪些令牌被其他令牌替换的相当精确的控制,它将要求你构造精确的列表并编写所有调用的代码。“对于不属于的每个UTF-16标记...”会让这件事变得困难。(最重要的是,运行起来也可能需要很长时间)。
一个泛型方法字符串替换“执行我脑海中碰巧想到的替换”还没有为您准备好。
https://stackoverflow.com/questions/52476698
复制相似问题