我有一个奇怪的Unicode字符在我的MySQL数据库
值看起来像这样
card issuer bank didn<U+0092>t approve your payment
所以应该是一个撇号是一个奇怪的unicode字符,大概来自窗口
我想replace它,但不知道如何在SQL中引用它
尝试以下,不工作:
replace(文本,转换(0x0092作为字符集utf8),'x')
0×0092
0x000x92
'\ U + 0092'
U'0x0092'
和其他吨的组合,他们都没有工作
有任何想法吗?
虽然具体的价值是不同的,但是这个页面似乎与你正在寻找的东西非常接近。 0x0092是十进制146,右侧smartquote的Windows代码。 这就相当于UTF-8中的0xe28099,就像你会在链接中看到的那样:)
综上所述:
此代码应该同时运行Windows-1252字符集和UTF-8,这是一种使用扩展字符集的编码,使其成为电子邮件和网站的首选编码。
UPDATE `t` SET `c` = REPLACE(`c`, 0xE28098, "'"); UPDATE `t` SET `c` = REPLACE(`c`, 0xE28099, "'"); UPDATE `t` SET `c` = REPLACE(`c`, 0xE2809C, '"'); UPDATE `t` SET `c` = REPLACE(`c`, 0xE2809D, '"');
…等等。
为什么不把暴力强加给你想要的呢?
更新设置=“发卡行不批准您的付款”在哪里=;
如果有许多这样的问题存在,也许把它放在代码中的插入上?
如果这仍然不可行,请尝试对列的整个值进行convert()函数。
转换(使用utf8)
在和我已经通过hex编辑器运行的select结果找出究竟是什么出来,所以事实certificate,实际上是0xc292,就像这里所描述的。
为什么linux会显示这个,因为U + 0092超出了我的意思