java - 从 US-ASCII 编码字符串获取 UTF-8 编码

标签 java utf-8 character-encoding

我有一个 UTF-8 编码的字符串“Château”,它被转换为 US-ASCII 格式作为“Ch??teau”(在我的应用程序的底层库中)

现在,我想从“U-ASCII”转换后的字符串“Ch??teau”中获取原始字符串“Château”。但是,我无法使用以下代码获得它。

StringBuilder masterBuffer = new StringBuilder();
byte[] rawDataBuffer = (Read from InputStream) // say here it is "Château"
String rawString = new String(rawDataBuffer, "UTF-8");
masterBuffer.append(rawString);
onMessageReceived(masterBuffer.toString().getBytes()) => Here, getBytes() uses the platform's default charset 'US-ASCII.

我的应用程序接收到 US-ASCII 编码的字节数组。 在应用程序方面,即使我尝试从中获取 UTF-8 字符串,也没有用。 转换尝试仍然给出“Ch??teau”。

String asciiString = "Ch??teau";
String originalString = new String(asciiString.getBytes("UTF-8"), "UTF-8");
System.out.println("orinalString: " + originalString);

“originalString”的值仍然是“Ch??teau”。

这是正确的方法吗?

谢谢,

最佳答案

你不能。您通过转换为 US-ASCII 丢失了信息。您无法找回丢失的东西。

关于java - 从 US-ASCII 编码字符串获取 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045035/

相关文章:

mysql - 向主键插入 utf-8 数据时出现重复条目

Python 将 Excel 选项卡转换为 CSV 文件

javascript - D3.js读取带有特殊字符的csv文件,éàüè

java - 如何在Java中创建具有变量字符串名称的类的实例?

java - 将 jar 库注入(inject) apk 应用程序

ruby - 如何通过 Rack 中间件处理用户输入的无效字节序列?

xml - 传输编码对 XML 编码和字符引用的影响

go - 在 Go 中将 UTF-8 转换为 ISO8859-1 的最佳方法

java - 如何在java中通过代理访问Active Directory?

java - 扩展 Play 框架的 GenericModel