Java UTF-8 编码

标签 java utf-8

我有一个这样的字符串

String str = "\u0e04\u0e38\u0e13\u0e23\u0e39\u0e49\u0e21\u0e31\u0e49\u0e22\u0e44\u0e14\u0e42\u0e19";

它实际上看起来像 ช1: คุณรู้มั้ยไดโนเสาร์ตั

我想要的是将字符串保留为字符串格式,以便 str.charAt(3) 是“e”而不是奇怪的字符。

如何做到这一点?帮助

进一步说明: 我从一个文件中得到这个字符串。我将文件中的一行读取为字符串,而这一行似乎是“\u0e04\u0e38\u0e13\u0e23\u0e39\u0e49\u0e21\u0e31\u0e49\u0e22\u0e44\u0e14\u0e42\u0e19”。所以在内存中,这个字符串是这样的。

代码在这里:

FileReader fr = new FileReader("sample2.json");
BufferedReader br = new BufferedReader(fr);

String line;
while((line = br.readLine()) != null)
{
    JSONObject data = new JSONObject(line);
        String text = data.getString("text");

文件中的这一行是“\u0e04\u0e38\u0e13\u0e23\u0e39\u0e49\u0e21\u0e31\u0e49\u0e22\u0e44\u0e14\u0e42\u0e19”

现在我想保留字符串文本的原始格式。

最佳答案

你只需要转义每一个反斜杠:

String str = "\\u0e04\\u0e38...";

关于Java UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155608/

相关文章:

java - java 'class' 文字如何为同一类返回 Class 对象的不同实例?

java - 如何重用父类(super class)方法中的变量?

java - 是什么导致 java.lang.IncompatibleClassChangeError?

ruby - 如何将编码从 ASCII-8BIT 转换为另一种编码,而不通过 ruby​​ 中的 UTF-8?

python - 在 python 中打印 unicode 字符串

java - 使用 UTF 字符编码 java 字符串\&\#232

java - 我的 XML 文件不显示任何内容

java - 为什么 JDBC 驱动程序会在 Oracle 数据库中填充一些空白字符而不是查询字段?

javascript - 在 Google Apps 脚本自定义函数中访问和抓取逗号分隔的 UTF-8 文本网页

java - 向我的 Web 应用程序添加两因素身份验证