代码之家  ›  专栏  ›  技术社区  ›  Adamski

CallableStatement SetString-不支持的字符?

  •  1
  • Adamski  · 技术社区  · 15 年前

    我有一个Java应用程序解码一个UTF-8编码 String 通过导线接收并保存到 varchar 我的数据库(SQL Server 2000)中的列。我用JDBC保存记录 CallableStatement (呼叫 setString 方法设置此列的参数)。

    我看到的问题是 已写入包含ASCII值0的( NUL )这向我表明,SQL Server不能表示特定的Unicode字符,JDBC驱动程序已经决定用ASCII值0替换,尽管我可能错了。

    • 还有人遇到过这个问题吗?
    • 我能用什么机制 可调用语句 在这种情况下呼叫失败?

    理想情况下,我希望确保数据已完全按照规定保存,否则将“快速失败”。

    我的数据库字符集是 Latin1_General_AS_CS .

    事先谢谢。

    2 回复  |  直到 14 年前
        1
  •  1
  •   pjp    14 年前

    您需要在数据库中使用“nvarchar”类型。

        2
  •  0
  •   Stu Thompson Helter Scelter    15 年前

    只是一个摇摆,但会用 .setBytes(String parameterName, byte[] x) 耍把戏吗?字节数组将来自 myString.getBytes() . 您可能希望尝试使用不同的字符集 getBytes() 也是。