gpt4 book ai didi

java - 将 java utf-16 字符串插入到 postgres 字符字段中

转载 作者:行者123 更新时间:2023-11-29 12:39:05 24 4
gpt4 key购买 nike

嗨,我有一个带有 latin1 字符集的 postgres 数据库和一个表“user”。我需要在 java 中使用准备好的语句插入用户名

boolean success = false;  
String query = "INSERT INTO public.user (name,email) VALUES(?,?)";
try {
PreparedStatement ps;
ps = db.prepareStatement(query);
ps.setString(1, user.getName());
ps.setString(2, user.getEmail());
if (ps.executeUpdate() != 0)
success = true;
ps.close();
} catch (SQLException ex) {
} finally {
return success;
}

问题是当 user.getName() 和 user.getEmail() 包含带有 è、ò 等重音符号的字符时,表会存储奇怪的字符。如何将正确的字符序列从java utf-16保存到postgres latin1字符集编码?

最佳答案

您不需要做任何特别的事情,jdbc 驱动程序会为您处理所有转换。然而,问题在于 latin1 字符集无法对所有可用字符进行编码(它仅支持 256 个字符)。因此,如果您尝试将某些字符放入表中,您将丢失某些字符。如果您认真对待存储国际数据,则必须让您的表存储一些 unicode 变体(utf8、utf16 等)。 (您需要使用一些特定于 postgres 的配置在数据库级别修复此问题)。

关于java - 将 java utf-16 字符串插入到 postgres 字符字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5306033/

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