drs*_*ein 4 java encoding android utf-8
我有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);
Run Code Online (Sandbox Code Playgroud)
使用这些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");
Run Code Online (Sandbox Code Playgroud)
有谁有想法吗?谢谢!
编辑 我连接到我的数据库:
Connection con = DriverManager.getConnection("jdbc:mysql://url:port?useUnicode=true&characterEncoding=utf-8", user, pass);
Run Code Online (Sandbox Code Playgroud)
当我在DB上执行查询时:
SELECT default_character_set_name
FROM information_schema.SCHEMATA S
WHERE schema_name = "schema_name";
Run Code Online (Sandbox Code Playgroud)
我得到了结果
utf8
Run Code Online (Sandbox Code Playgroud)
所以我认为DB是用UTF-8编码的,我与它的连接可以处理UTF-8
n0r*_*m1e 10
您需要弄清楚这发生在哪个阶段:1-从数据库加载文本的位置,以及2-将文档写入文件的位置.
需要注意的一点是,您的数据库必须使用UTF-8编码创建,并且您的连接也必须支持它.支持UTF-8的JDBC连接URL的示例可以是:
jdbc:mysql://hostname:port/schema?useUnicode=yes&characterEncoding=utf-8
Run Code Online (Sandbox Code Playgroud)
在getBytes("UTF-8")中指定编码后,您观察到的症状清楚地表明您从数据库获得的内容不是UTF-8.
还尝试从您怀疑数据所在的编码转换(如ISO-8859-1):
new String(request.getParameter("value").getBytes("ISO-8859-1"), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22079 次 |
| 最近记录: |