一直以来都忽略了它,我目前正在强制自己学习更多有关 Java 中的 unicode 的知识。我需要做一个关于将 UTF-16 字符串转换为 8 位 ASCII 的练习。有人可以请教我如何在 Java 中执行此操作吗?我知道你不能用 ASCII 表示所有可能的 unicode 值,所以在这种情况下,我希望无论如何都只添加一个超过 0xFF 的代码(坏数据也应该静默添加)。
谢谢!
最佳答案
您可以使用 java.nio 作为简单的解决方案:
// first encode the utf-16 string as a ByteBuffer
ByteBuffer bb = Charset.forName("utf-16").encode(CharBuffer.wrap(utf16str));
// then decode those bytes as US-ASCII
CharBuffer ascii = Charset.forName("US-ASCII").decode(bb);
关于java - Java 中的 UTF-16 到 ASCII 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490218/