如何在 UTF-8 中对 readline() 中的字符串进行编码
How to encode string from readline() in UTF-8
我正在寻找以 UTF-8 编码字符串的有效解决方案。
我是 Android 的新人,请耐心等待。 ;)
我尝试了所有我能找到的解决方案,但没有任何效果!
这是我的代码:
public void Loader(String nameFile) throws FileNotFoundException {
File file = new File(nameFile);
FileInputStream f_is = new FileInputStream(file);
BufferedInputStream b_is = new BufferedInputStream(f_is);
BufferedReader data = new BufferedReader(new InputStreamReader(b_is));
try {
while ( (BufferTemp=data.readLine()) != null) {
if (BufferTemp.contains("****")) {
Titolo = data.readLine();
Tempo = data.readLine();
Persone = data.readLine();
Piatto = data.readLine();
Ingredienti = data.readLine();
Altro = data.readLine();
Descrizione = data.readLine();
EncodedBkg = data.readLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
如何将 Descrizione
编码为 UTF-8 字符串?
我接受任何解决方案,欢迎对我的代码进行所有更改,但我需要逐行阅读文件。
java.net.URLEncoder.encode("Descrizione", "UTF-8");
您的输入流 reader 将默认为您设备上设置的默认编码(例如 shift JIS 或 UTF16,具体取决于您的区域设置)
然后重置字符串编码:
Descrizione = Charset.forName("UTF-8").encode(data.readLine());
既然你有一个带有内部 utf8 表示的字符串,如果你希望以需要将其发送到 Web 服务器的方式格式化它,你可以调用:
URLEncoder.encode (myString, "UTF-8");
这将转义许多字符,以便它们可以通过 http GET 或 POST 作为参数发送。
Java 在内存中的原生 String
编码是 UTF-16。 readLine()
returns UTF-16 编码 String
。使用 UTF-8 编码 String
.
没有意义
真正的问题是源文件是 UTF-8 编码的,而您无法从中读取非 ASCII 字符吗?如果是这样,使用 InputStreamReader
构造函数的字符集参数:
new InputStreamReader(b_is, "utf-8")
或者,您真的需要将 UTF-16 编码的 String
转换为 UTF-8 编码的内存缓冲区吗?
ByteBuffer Descrizione_utf8 = Charset.forName("utf-8").encode(Descrizione);
我正在寻找以 UTF-8 编码字符串的有效解决方案。
我是 Android 的新人,请耐心等待。 ;)
我尝试了所有我能找到的解决方案,但没有任何效果!
这是我的代码:
public void Loader(String nameFile) throws FileNotFoundException {
File file = new File(nameFile);
FileInputStream f_is = new FileInputStream(file);
BufferedInputStream b_is = new BufferedInputStream(f_is);
BufferedReader data = new BufferedReader(new InputStreamReader(b_is));
try {
while ( (BufferTemp=data.readLine()) != null) {
if (BufferTemp.contains("****")) {
Titolo = data.readLine();
Tempo = data.readLine();
Persone = data.readLine();
Piatto = data.readLine();
Ingredienti = data.readLine();
Altro = data.readLine();
Descrizione = data.readLine();
EncodedBkg = data.readLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
如何将 Descrizione
编码为 UTF-8 字符串?
我接受任何解决方案,欢迎对我的代码进行所有更改,但我需要逐行阅读文件。
java.net.URLEncoder.encode("Descrizione", "UTF-8");
您的输入流 reader 将默认为您设备上设置的默认编码(例如 shift JIS 或 UTF16,具体取决于您的区域设置)
然后重置字符串编码:
Descrizione = Charset.forName("UTF-8").encode(data.readLine());
既然你有一个带有内部 utf8 表示的字符串,如果你希望以需要将其发送到 Web 服务器的方式格式化它,你可以调用:
URLEncoder.encode (myString, "UTF-8");
这将转义许多字符,以便它们可以通过 http GET 或 POST 作为参数发送。
Java 在内存中的原生 String
编码是 UTF-16。 readLine()
returns UTF-16 编码 String
。使用 UTF-8 编码 String
.
真正的问题是源文件是 UTF-8 编码的,而您无法从中读取非 ASCII 字符吗?如果是这样,使用 InputStreamReader
构造函数的字符集参数:
new InputStreamReader(b_is, "utf-8")
或者,您真的需要将 UTF-16 编码的 String
转换为 UTF-8 编码的内存缓冲区吗?
ByteBuffer Descrizione_utf8 = Charset.forName("utf-8").encode(Descrizione);