Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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 如何处理SQL状态[HY000];错误代码[1366];字符串值不正确?_Java_Mysql_Utf 8 - Fatal编程技术网

Java 如何处理SQL状态[HY000];错误代码[1366];字符串值不正确?

Java 如何处理SQL状态[HY000];错误代码[1366];字符串值不正确?,java,mysql,utf-8,Java,Mysql,Utf 8,我知道这个错误意味着mysql列不接受该值,但这很奇怪,因为该值符合Java UTF-8编码的字符串,而mysql列是utf8\U general\U ci。除此之外,所有utf8字符到目前为止都工作正常 用例是:我正在导入tweet。讨论中的tweet是:-您可以看到两个“奇怪”字符(以及它们之间的两个奇怪空格)。问题是——如何处理这个问题: 修剪这些字符(它们是什么,JavaUTF-8与MySQL有何不同) 使列能够接受此值(如何-是否有比utf8\u general\u ci更多的utf

我知道这个错误意味着mysql列不接受该值,但这很奇怪,因为该值符合Java UTF-8编码的字符串,而mysql列是utf8\U general\U ci。除此之外,所有utf8字符到目前为止都工作正常

用例是:我正在导入tweet。讨论中的tweet是:-您可以看到两个“奇怪”字符(以及它们之间的两个奇怪空格)。问题是——如何处理这个问题:

  • 修剪这些字符(它们是什么,JavaUTF-8与MySQL有何不同)
  • 使列能够接受此值(如何-是否有比utf8\u general\u ci更多的utf-y)
这些似乎是。由于它们不是实际字符,而且MySQL似乎不支持它们,因此可以安全地对它们进行修剪:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
    char ch = text.charAt(i);
    if (!Character.isHighSurrogate(ch) && !Character.isLowSurrogate(ch)) {
        sb.append(ch);
    }
}
return sb.toString();
StringBuilder sb=新建StringBuilder();
对于(int i=0;i