我有一个这样的字符串
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/