我有一个Java应用程序解码了通过有线接收到的UTF-8编码的String,并将其保存到数据库中的varchar列中( Server 2000)。我使用JDBC的CallableStatement保存记录(调用setString方法来设置此列的参数)。
我看到的问题是,已经编写了一个包含ASCII值0 (NUL)的特定String。这表明SQL server不能表示特定的Unicode字符,JDBC驱动程序已经决定在ASCII值0中替换,尽管我可能错了。
CallableStatement调用失败吗?理想情况下,我希望保证数据保存完全按照指定的方式进行,否则就会“快速失败”。
我的数据库字符集是Latin1_General_AS_CS。
提前谢谢。
发布于 2010-07-31 08:55:40
您需要在数据库中使用“NVARCHAR”类型。
发布于 2009-09-10 10:57:34
只是一个WAG,但是使用.setBytes(String parameterName, byte[] x)会起作用吗?字节数组将来自myString.getBytes()。您也可以尝试在getBytes()中使用不同的字符集。
https://stackoverflow.com/questions/1400274
复制相似问题