MYSQL 中unicode 编码字符遍历转中文字符
BEGIN # by zouzp / 21-03-26 # unicode 转中文字符的方法; # 注意 \ u 之间不能有空格,再传入的字符串的时候不能有空格,和oracle 一样会导致报错提示传入的数据有异常; DECLARE code1,code2,code3 VARCHAR(2000); -- 定义三个变量用于接收 unicode 字符串前面 和中间 和后面的字符 DECLARE s_index SMALLINT UNSIGNED DEFAULT 0; -- 定义用于定位index的变量 DECLARE result,tmp_txt TEXT; -- 定义返回用的变量; DECLARE temp VARCHAR(1); -- 临时用的变量; SET s_index=LOCATE("\u", content,1); -- 获取第一次出现'\u'字符的位置; SET result = ""; set tmp_txt = content; WHILE s_index>0 DO -- 获取出现问题的字符的前面字符 set code1 = substr(tmp_txt,1,s_index-1); -- 获取出问题的字段; SET code2 = substr(tmp_txt,s_index+1,4); -- 获取后面未处理的字段 SET code3 = substr(tmp_txt,s_index+5); -- 修改有问题的字段 SET temp = CONVERT( unhex(code2) USING ucs2); -- 拼接字段 set tmp_txt = CONCAT(code1,temp,code3); SET s_index = LOCATE("\u", tmp_txt, 1);-- 再次查看有没有保护\u 的unicode 的字符串; END WHILE ; SET result = tmp_txt; -- 返回; RETURN result; END
如有错误,望费心指出。 感激涕零。