Назад | Перейти на главную страницу

как цитировать символы Unicode в приглашении mysql или в SQL в целом?

У меня в базе данных mysql есть странный символ Unicode

значение выглядит так

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

так что то, что должно быть апострофом, - это странный символ Unicode, предположительно из окон

Я хочу заменить его, но не знаю, как его цитировать в SQL

пробовал следующее, не работает:

replace (text, cast (0x0092 как набор символов utf8), 'x')

0x0092

0x000x92

'\ U + 0092'

U'0x0092 '

и множество других комбинаций, ни одна из них не работает

Любые идеи?

Эта страница кажется очень близким к тому, что вы ищете, хотя конкретные значения отличаются; 0x0092 - это десятичное число 146, код Windows для правильной цитаты. Это эквивалент 0xe28099 в UTF-8, как вы увидите по ссылке :)

В итоге:

Этот код должен работать как с кодировкой 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, '"');

...и так далее.

в и я прогнал результат выбора через шестнадцатеричный редактор, чтобы выяснить, что именно выходит, так что оказалось, что на самом деле это 0xc292, как описано Вот.

Почему Linux отображает это как U + 0092 вне меня?

Почему бы просто не применить грубую силу к тому, что вы хотите?

update set = "банк-эмитент карты не одобрил ваш платеж" where =;

Если у многих из них одна и та же проблема, может быть, перехватить ее на вставке в коде?

Если это все еще невозможно, попробуйте преобразовать функцию convert () для всего значения столбца.

конвертировать (используя utf8)