gpt4 book ai didi

java - Unicode(希腊语)字符存储在数据库中,如 "??????"

转载 作者:可可西里 更新时间:2023-11-01 06:47:56 27 4
gpt4 key购买 nike

数据库中的希腊字符就像问号(“??????”)。我找不到解决办法。我使用 Java/Swing 开发了一个应用程序,但是当我在 MySQL 中插入希腊字母时,它们就像问号一样。我将 db collat​​ion 更改为 utf8 和列。我的项目编码设置为 UTF-8。当我从 MySQL 插入希腊字母时,它们会被正确存储。

我正在使用 MySQL 连接器 jar 文件。

public class Testing {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

try {
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/chartest","root","1234");
Statement pst=conn.createStatement();
String var1="ασδασδ";
String sql="INSERT INTO chars(value) values('"+var1+"')";
pst.execute(sql);
} catch (SQLException ex) {
Logger.getLogger(Testing.class.getName()).log(Level.SEVERE, null, ex);
}
}

最佳答案

我认为您只需要在创建连接时再添加几个参数(useUnicodecharacterEncoding)。以下代码对我有用:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;

public class GreekTestMain {

public static void main(String[] args) {
String connUrl =
"jdbc:mysql://192.168.1.3/greektest?" +
"useUnicode=yes&characterEncoding=UTF-8" +
"&user=root&password=obfuscated";
try (Connection conn = DriverManager.getConnection(connUrl)) {
String sql = "INSERT INTO `chars` (`value`) VALUES (?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "ασδασδ");
pst.executeUpdate();
} catch (Exception e) {
e.printStackTrace(System.err);
}
}

}

关于java - Unicode(希腊语)字符存储在数据库中,如 "??????",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632644/

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