gpt4 book ai didi

Java + Mysql UTF8 问题

转载 作者:IT老高 更新时间:2023-10-28 20:54:28 28 4
gpt4 key购买 nike

正如标题所说,我在java和mysql之间有问题

mysql 数据库、表和列是 utf8_unicode_ci。我有一个应用程序从 xml 中获取一些输入,然后编写查询...

public String [] saveField(String xmltag, String lang){     
NodeList nodo = this.doc.getElementsByTagName(xmltag);
String [] pos = new String[nodo.getLength()];
for (int i = 0 ; i < nodo.getLength() ; i++ ) {
Node child = nodo.item(i);
pos[i] = "INSERT INTO table (id, lang, value) VALUES (" +
child.getAttributes().getNamedItem("id").getNodeValue().toString() + " , " +
lang + " , " +
"'" + child.getFirstChild().getTextContent() + "'" +
");";
}
return pos;
}

此方法返回一个字符串数组,其中包含一个或多个 SQL 插入查询...那么

Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");
.....
Statement s; s =
this.con.createStatement ();
s.execute(query);

s.executes.executeUpdate 的特殊字符都存储为 ?

所以特殊字符没有正确存储:מסירות קצרות 存储为 ?????????

Hi! 存储为 Hi!

有什么建议吗?

谢谢

最佳答案

已解决,初始化Connection的时候忘记加编码了:

以前是:

con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");

现在(工作):

con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");

关于Java + Mysql UTF8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275524/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com