Случвало ли ви се е да ъплоаднете текстов файл преди това писан и експортнат от 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 |
Полезно, благодаря!
Работи чудесно и ми оправи проблема. :)
Сори за двойния пост, но да добавя:
При UTF-8:
\xe2\x80\x9e
1251:
149 (предполагам)
са за "долна" кавичка, т.е. затваряща.