Как да премахнем Microsoft Smart Quotes в MySQL или PHP

Случвало ли ви се е да ъплоаднете текстов файл преди това писан и експортнат от Microsoft Office. Е в това няма нищо лошо, но сигурно забелязвате, че кавичките не са като стандартните(на вид и като изпълнение). Тези кавички са част от Smart Quotes. Smart quotes е част от Microsoft office които трансформира стандартните кавички. Ето Ви как може да премахнете Smart Quotes в MySQL и PHP(препоръчвам PHP):

MySQL:

#UTF-8 text
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 `t` SET `c` = REPLACE(`c`, 0xE28093, '-');
UPDATE `t` SET `c` = REPLACE(`c`, 0xE28094, '--');
UPDATE `t` SET `c` = REPLACE(`c`, 0xE280A6, '…');
#Windows-1252 text
UPDATE `t` SET `c` = REPLACE(`c`, char(145), "'");
UPDATE `t` SET `c` = REPLACE(`c`, char(146), "'");
UPDATE `t` SET `c` = REPLACE(`c`, char(147), '"');
UPDATE `t` SET `c` = REPLACE(`c`, char(148), '"');
UPDATE `t` SET `c` = REPLACE(`c`, char(150), '-');
UPDATE `t` SET `c` = REPLACE(`c`, char(151), '--');
UPDATE `t` SET `c` = REPLACE(`c`, char(133), '…');

PHP:

// UTF-8 texxt
$text = str_replace(
array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
array("'", "'", '"', '"', '-', '--', '…'),
$text);
// Windows-1252 text
$text = str_replace(
array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
array("'", "'", '"', '"', '-', '--', '…'),
$text);

Ето и подробна таблица:

Character HTML Code Windows UTF-8 name
‘ 145 E28098 left single curly quote
’ 146 E28099 right single curly quote
“ 147 E2809C left double curly quote
” 148 E2809D right double curly quote
– 150 E28093 en dash
— 151 E28094 em dash
… 133 E280A6 ellipsis
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Как да премахнем Microsoft Smart Quotes в MySQL или PHP, 5.0 out of 5 based on 1 rating

2 thoughts on “Как да премахнем Microsoft Smart Quotes в MySQL или PHP”

  1. Полезно, благодаря!
    Работи чудесно и ми оправи проблема. :)

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. Сори за двойния пост, но да добавя:
    При UTF-8:
    \xe2\x80\x9e
    1251:
    149 (предполагам)
    са за "долна" кавичка, т.е. затваряща.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *