Mysql

在 mysql 提示符或一般 SQL 中如何引用 unicode 字元?

  • September 23, 2009

我的 mysql 數據庫中有一個奇怪的 unicode char

值看起來像這樣

card issuer bank didn<U+0092>t approve your payment

所以應該是撇號的是一個奇怪的unicode char,大概來自windows

我想替換它,但不知道如何在 SQL 中引用它

嘗試了以下,不起作用:

替換(文本,轉換(0x0092 作為字元集 utf8),‘x’)

0x0092

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, '"');

…等等。

為什麼不將其強制為您想要的?

update set = “發卡行未批准您的付款” where =;

如果其中有許多具有相同問題,也許將其擷取在程式碼中的插入處?

如果這仍然不可能,請嘗試對列的整個值使用 convert() 函式。

轉換(使用 utf8)

引用自:https://serverfault.com/questions/67272