插入mysql数据库错误,表格编码格式不能变。
我怎么调整我插入的信息呢?异常错误提示信息"Incorrect string value: '\xA8D DVD...' for column 'intro' at row 1"
应该是mysql不能接受'―'这个字符stirng intro="WinDVD ― DVD Player";
之后生成的sql语句是:"INSERT INTO `goods` ( ...,`intro` ,...) ) VALUES ( ...,"WinDVD ― DVD Player",...)
语句中的其他字段省略。网上查了半天,很多都是说去修改表的编码,但是,我不能去更改表,只能根据他格式插入数据。-_-!
我能不能更改intro的编码?转换它?或者把这种不能接受的字符找出来,去掉呢?
.net中该怎么做呢?高手前辈们帮帮忙,指条明路吧,网上查到眼睛发花了。

解决方案 »

  1.   

    传说每天在CSDN吐口痰即可获得10分可用分!
      

  2.   

    要不base64一下,取出的时候在转回来?
      

  3.   

    上面的判断错了。-就是mysql的非法字符。下面的代码是PHP的你可以参考一下,好像非法字符还不少啊。sql非法字符过滤函数
    '**************************************************
    '函数名:ReplaceBadChar
    '作  用:过滤非法的SQL字符
    '参  数:strChar-----要过滤的字符
    '返回值:过滤后的字符
    '**************************************************Function ReplaceBadChar(strChar)
        If strChar = "" Or IsNull(strChar) Then
            ReplaceBadChar = ""
            Exit Function
        End If
        Dim strBadChar, arrBadChar, tempChar, i
        strBadChar = "+,',--,%,^,&,?,(,),<,>,[,],{,},/,\,;,:," & Chr(34) & "," & Chr(0) & ""
        arrBadChar = Split(strBadChar, ",")
        tempChar = strChar
        For i = 0 To UBound(arrBadChar)
            tempChar = Replace(tempChar, arrBadChar(i), "")
        Next
        tempChar = Replace(tempChar, "@@", "@")
        ReplaceBadChar = tempChar
    End Function 
      

  4.   

    我也遇到了类似的问题,插入到数据库时总是报错 Incorrect string value: '\xB5' for column 'content' at row 1
      

  5.   

    字段容纳的字符数太少的原因。如果是text类型,改成mediumtext或longtext类型。