Java 插入postgres DB-印地语
我正在创建一个Java应用程序,希望在其中输入除英语以外的其他语言的数据。例如,我想输入印地语(UTF-8)字符的数据。我已将数据转换为十六进制字符串Java 插入postgres DB-印地语,java,postgresql,multilingual,Java,Postgresql,Multilingual,我正在创建一个Java应用程序,希望在其中输入除英语以外的其他语言的数据。例如,我想输入印地语(UTF-8)字符的数据。我已将数据转换为十六进制字符串'\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95' 但是,当我尝试使用convert\u from将数据转换回印地语时,我得到以下错误: select convert_from('\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97
'\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95'
但是,当我尝试使用convert\u from
将数据转换回印地语时,我得到以下错误:
select convert_from('\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95', 'UTF8') aa
错误:
ERROR: invalid hexadecimal digit: "\"
LINE 1: select convert_from('\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97\xe...
^
********** Error **********
ERROR: invalid hexadecimal digit: "\"
SQL state: 22023
Character: 21
我正在使用Postgres。您有几种选择。如果您的数据库已经使用UTF8(并且客户端编码也是UTF8),只需使用: 当数据库不是UTF8(但客户端编码是UTF8)时,使用
convert\u from()
&转义文字:
当您的数据库和客户端编码都不是UTF8时,请使用简单文本使用convert\u from()
&decode()
:
select convert_from(E'\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x97\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95', 'UTF8')
convert_from(decode('e0a4a8e0a4bee0a497e0a4b0e0a4bfe0a495', 'hex'), 'UTF8')
我已经将数据转换为十六进制字符串——无论如何,当您使用准备好的语句并将原始数据绑定为它的参数时,这些问题不应该出现。您的语言的绑定应该处理转换,而不是您
尝试使用\\或//尝试使用'\\'来转义'\',尝试过,但它没有将十六进制代码转换为我的印地语文本在丹麦和挪威,我们使用字母æ、ø和å。我可以将文本直接保存到postgres,如“插入食物值('blåbærsyltetøj')”(蓝莓酱)只要数据库与插入的文本具有相同的编码。在我的情况下,我使用UTF-8。为我工作的解决方案1也将尝试使用prepared语句
convert_from(decode('e0a4a8e0a4bee0a497e0a4b0e0a4bfe0a495', 'hex'), 'UTF8')