我对 utf-8 编码有疑问。
我使用 Java 从 UTF-8 格式的 MySQL 数据库中检索数据(带有很多中文符号),并将它们放在一些 txt 文件中:(这是一个示例..我有很多数据)
String name = null;
ResultSet res = stat.executeQuery("Some_SQL");
nomeImg = res.getString("value");
PrintWriter = new new PrintWriter(new FileOutputStream("file_name.txt"));
out.println(name);
使用这些 txt 文件,我将创建一些 TextView,用于在我的 Android 应用程序上填充一些活动,但并非所有符号都正确显示:大多数符号是正确的,但有些无法识别,并且显示为黑色里面有一个白色问号的钻石。
我也试过这个:但我得到了最糟糕的结果
byte[] name = null;
ResultSet res = stat.executeQuery("Some_SQL");
nomeImg = res.getString("value").getBytes("UTF-8"):
BufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("file_name.txt"), "UTF-8"));
out.write(new String(name, "UTF-8")+"\n");
有人有什么主意吗?谢谢!
编辑 我连接到我的数据库:
Connection con = DriverManager.getConnection("jdbc:mysql://url:port?useUnicode=true&characterEncoding=utf-8", user, pass);
当我在数据库上执行查询时:
SELECT default_character_set_name
FROM information_schema.SCHEMATA S
WHERE schema_name = "schema_name";
我得到结果
utf8
所以我认为 DB 是用 UTF-8 编码的,我与它的连接可以处理 UTF-8