java - Java 中的 UTF-16 到 ASCII 的转换

标签 java ascii utf-16

一直以来都忽略了它,我目前正在强制自己学习更多有关 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/

相关文章:

java - 如何解决 Java 中的哈希冲突

java - 将树保存为预购

encoding - 表情符号取值范围

javascript - 表情符号到/来自 Javascript 中的代码点

java - 查找二维数组中的最大元素

java - 空指针异常,无法解决

c - 使用 fscanf 读取 ASCII 码文件

objective-c - RTFString 包含 NSASCIIStringEncoding 特殊字符?

c - 希望通过 C 中等效的 ASCII 值将 int 存储在 char 数组中

java - java中如何将字符串转换为二进制utf-16以及二进制转换为字符串?