【问题标题】:mysql Incorrect string value error in stored proceduremysql 存储过程中不正确的字符串值错误
【发布时间】:2017-10-25 04:35:07
【问题描述】:

Incorrect string value: '\xE8' for column 'P10' at row 1

我正在为 EMS RFID 通信制作存储过程并将数据包返回给 c# 应用程序。但它显示错误,如 P10 字符上的图像。怎么了??第一个版本是 c# 代码。我正在尝试迁移到 mysql 存储过程。

请提出任何建议。

(我已经检查过字符集是 utf8)

CREATE DEFINER=`root`@`localhost` FUNCTION `GetRFIDWriteCommand`(`Param1` VARCHAR(50))
    RETURNS text CHARSET utf8
    LANGUAGE SQL
    DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT
BEGIN
    DECLARE P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 CHAR;
    DECLARE TIMEOUT INT;
    DECLARE RET TEXT;

    SET TIMEOUT = 1000;
    SET P0 = char(2); # &H2     STX 
    SET P1 = char(2); #  &H2 
    SET P2 = char(0); #  &H0   
    SET P3 = char(LENGTH(Param1) + 7);
    SET P4 = char(6); #  &HD         #write command
    SET P5 = char(0);
    SET P6 = char(0); #  brStart_Add
    SET P7 = char(0);
    SET P8 = char(LENGTH(Param1)); #  brLength        #length (=100)
    SET P9 = char(3);
    SET P10 = char(232); # <=== ERROR POINT

    SET RET = CONCAT(P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,char(3));

    return RET;

END

【问题讨论】:

    标签: c# mysql stored-procedures


    【解决方案1】:

    我找到了解决办法!!

    char(0x00FC using ucs2)
    

    就这样使用

    char(使用 ucs2 的十六进制值)

    https://stackoverflow.com/a/2384387/1038996

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 2012-11-08
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多