Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java可更新结果集异常在英文Windows中使用UTF-8数据_Java_Mysql_Unicode_Utf 8_Resultset - Fatal编程技术网

Java可更新结果集异常在英文Windows中使用UTF-8数据

Java可更新结果集异常在英文Windows中使用UTF-8数据,java,mysql,unicode,utf-8,resultset,Java,Mysql,Unicode,Utf 8,Resultset,我面临一个奇怪的问题。当我尝试更新或删除包含非英语utf字符的可更新结果集中的行时,出现异常。然而,插入很好 java.sql.SQLException:对已删除或主键已更改的行调用refreshRow() 最奇怪的事情是: 只有在windows中运行编译的jar时,才会发生此错误 然而,在Linux中运行的同一个jar对于相同的数据运行良好,没有问题 在IDE中运行相同的项目在Windows中也可以正常运行 其他有帮助的信息 操作系统:Windows XP(安装了英语和非英语语言支持)

我面临一个奇怪的问题。当我尝试更新或删除包含非英语utf字符的可更新结果集中的行时,出现异常。然而,插入很好


java.sql.SQLException:对已删除或主键已更改的行调用refreshRow()


最奇怪的事情是:

  • 只有在windows中运行编译的jar时,才会发生此错误
  • 然而,在Linux中运行的同一个jar对于相同的数据运行良好,没有问题
  • 在IDE中运行相同的项目在Windows中也可以正常运行
  • 其他有帮助的信息


    操作系统:Windows XP(安装了英语和非英语语言支持)

    DB:MySQL,编码utf8,排序规则-utf8\u常规\u ci

    IDE:Netbeans 6.9.1

    JDK:6更新23

    接头/J 5.1.15(只需切换以检查其是否工作,但版本14也存在相同问题)

    连接字符串包括:“useUnicode=true”和“characterEncoding=utf8”

    最初认为IDE可以做些什么,所以在netbeans论坛上发布了这条消息

    还交叉张贴在mysql JDBC论坛上,希望找到一些答案

    但是在那里找不到任何帮助


    到目前为止,问题似乎出在Windows上。也许这只是个小问题,但想不出任何解决办法

    需要一些建议吗

    谢谢和问候


    Deepak

    您的IDE似乎覆盖了从命令行运行应用程序时获得的默认编码。如果检查IDE使用的实际JVM参数(通常在IDE的输出窗口中可用),您可能会看到包含文件编码参数,如下所示:

    -Dfile.encoding="UTF-8"
    
    System.out.println(System.getProperty("file.encoding"));
    
    尝试用这个JVM参数启动应用程序,看看它是否有什么不同,如果没有,请比较从IDE和在命令行上运行时使用的实际编码,如下所示:

    -Dfile.encoding="UTF-8"
    
    System.out.println(System.getProperty("file.encoding"));
    

    我也有同样的问题并解决了。我不明白为什么会发生这种情况,但这是在组合mysql表的主键时造成的。在我的数据库中,有许多表组合了主键和其他具有自动增量的表。我可能注意到这个问题并没有出现在具有自动递增主键的表中