gpt4 book ai didi

java - 使用 WampServer 和 Java 将土耳其语字符写入 MySQL

转载 作者:行者123 更新时间:2023-11-29 02:01:24 25 4
gpt4 key购买 nike

我的 Wamp 服务器有问题。当我执行包含土耳其语字符的查询时,出现此错误:

SEVERE: Incorrect string value: '\xE7l? ya...' for column 'body' at row 1
java.sql.SQLException: Incorrect string value: '\xE7l? ya...' for column 'body' at row 1

这是我的 Java 代码:

Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
PreparedStatement p = con.prepareStatement("SET NAMES utf8");
p.executeUpdate();
PreparedStatement ps =
con.prepareStatement("INSERT INTO duyurular values (?, ?, ?, ?)");
ps.setInt(1, 0);
ps.setString(2, title);
ps.setString(3, body);
ps.setInt(4, writer);
ps.executeUpdate();

我尝试写入的数据库和表都设置为“utf8_turkish_ci”排序规则。我的 Wamp 服务器版本是 2.2。

table

table structure

我可以使用 PHPMyAdmin sql 控制台编写土耳其语字符,但不能使用我的 Java 代码。我应该怎么做才能克服这个问题?提前致谢。

最佳答案

这里没有任何内容会告诉驱动程序以 UTF-8 编码字符串。您只是让数据库需要 UTF-8,然后驱动程序以其他编码对您的字符串进行编码,数据库会抛出错误。

你没有显示你的 url 是什么,但它应该是这样的:

jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8

然后你可以删除这个:

PreparedStatement p = con.prepareStatement("SET NAMES utf8");
p.executeUpdate();

关于java - 使用 WampServer 和 Java 将土耳其语字符写入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033031/

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