2013-09-11 9 views
1

, Â я понял, пару дней назад, что мы имели некоторый странный характер на какой-то старый список, что у меня есть на нашем сайтеКодирование в utf8, у меня есть некоторые

У меня есть некоторый характер, как этот, Â, которые равно dualquote (") у меня есть некоторый характер, как ࢠ??

Я хочу, чтобы восстановить их, но я не знаю, как.

Поскольку, когда я использую preg_replace, если я сделать этот код

$text = 'this is a listingTitle  with an encoding problem'; 
$test = preg_replace("/ÂÂ/",'"',$text); 
echo$test; 

$ test все равно будет иметь эту ошибку кодирования в строке, так что это похоже на preg_replace, не видя проблемы с кодировкой.

есть ли у кого есть идея, что я могу сделать, чтобы исправить эту ошибку кодирования? Или есть способ я должен протекала

Благодаря

Редактировать Здесь ------------------------------ --------------------

Хорошо, так что я пытаюсь сделать сейчас, это преобразовать каждый символ в utf8 И поскольку по какой-то причине моя строка смешанна с несколькими кодировками.

Итак, вот строка и разбивка символа, создающего строку.

Milwaukee 2415-21 M12 Cordless Lithium-Ion 3/8A Угловая дрель/Driver Kit Wi

и это ломаются

atChar[0] = 'M' encoding is = ASCII 
atChar[1] = 'i' encoding is = ASCII 
atChar[2] = 'l' encoding is = ASCII 
atChar[3] = 'w' encoding is = ASCII 
atChar[4] = 'a' encoding is = ASCII 
atChar[5] = 'u' encoding is = ASCII 
atChar[6] = 'k' encoding is = ASCII 
atChar[7] = 'e' encoding is = ASCII 
atChar[8] = 'e' encoding is = ASCII 
atChar[9] = ' ' encoding is = ASCII 
atChar[10] = '2' encoding is = ASCII 
atChar[11] = '4' encoding is = ASCII 
atChar[12] = '1' encoding is = ASCII 
atChar[13] = '5' encoding is = ASCII 
atChar[14] = '-' encoding is = ASCII 
atChar[15] = '2' encoding is = ASCII 
atChar[16] = '1' encoding is = ASCII 
atChar[17] = ' ' encoding is = ASCII 
atChar[18] = 'M' encoding is = ASCII 
atChar[19] = '1' encoding is = ASCII 
atChar[20] = '2' encoding is = ASCII 
atChar[21] = ' ' encoding is = ASCII 
atChar[22] = 'C' encoding is = ASCII 
atChar[23] = 'o' encoding is = ASCII 
atChar[24] = 'r' encoding is = ASCII 
atChar[25] = 'd' encoding is = ASCII 
atChar[26] = 'l' encoding is = ASCII 
atChar[27] = 'e' encoding is = ASCII 
atChar[28] = 's' encoding is = ASCII 
atChar[29] = 's' encoding is = ASCII 
atChar[30] = ' ' encoding is = ASCII 
atChar[31] = 'L' encoding is = ASCII 
atChar[32] = 'i' encoding is = ASCII 
atChar[33] = 't' encoding is = ASCII 
atChar[34] = 'h' encoding is = ASCII 
atChar[35] = 'i' encoding is = ASCII 
atChar[36] = 'u' encoding is = ASCII 
atChar[37] = 'm' encoding is = ASCII 
atChar[38] = '-' encoding is = ASCII 
atChar[39] = 'I' encoding is = ASCII 
atChar[40] = 'o' encoding is = ASCII 
atChar[41] = 'n' encoding is = ASCII 
atChar[42] = ' ' encoding is = ASCII 
atChar[43] = '3' encoding is = ASCII 
atChar[44] = '/' encoding is = ASCII 
atChar[45] = '8' encoding is = ASCII 
atChar[46] = 'Â' encoding is = UTF-8 
atChar[47] = '' encoding is = 
atChar[48] = ' ' encoding is = ASCII 
atChar[49] = 'R' encoding is = ASCII 
atChar[50] = 'i' encoding is = ASCII 
atChar[51] = 'g' encoding is = ASCII 
atChar[52] = 'h' encoding is = ASCII 
atChar[53] = 't' encoding is = ASCII 
atChar[54] = ' ' encoding is = ASCII 
atChar[55] = 'A' encoding is = ASCII 
atChar[56] = 'n' encoding is = ASCII 
atChar[57] = 'g' encoding is = ASCII 
atChar[58] = 'l' encoding is = ASCII 
atChar[59] = 'e' encoding is = ASCII 
atChar[60] = ' ' encoding is = ASCII 
atChar[61] = 'D' encoding is = ASCII 
atChar[62] = 'r' encoding is = ASCII 
atChar[63] = 'i' encoding is = ASCII 
atChar[64] = 'l' encoding is = ASCII 
atChar[65] = 'l' encoding is = ASCII 
atChar[66] = '/' encoding is = ASCII 
atChar[67] = 'D' encoding is = ASCII 
atChar[68] = 'r' encoding is = ASCII 
atChar[69] = 'i' encoding is = ASCII 
atChar[70] = 'v' encoding is = ASCII 
atChar[71] = 'e' encoding is = ASCII 
atChar[72] = 'r' encoding is = ASCII 
atChar[73] = ' ' encoding is = ASCII 
atChar[74] = 'K' encoding is = ASCII 
atChar[75] = 'i' encoding is = ASCII 
atChar[76] = 't' encoding is = ASCII 
atChar[77] = ' ' encoding is = ASCII 
atChar[78] = 'w' encoding is = ASCII 

что я могу сделать сейчас?

+0

Что произойдет, если вы декодируете строку в формате ISO? http://php.net/manual/en/function.utf8-decode.php – XaxD

+0

Этот '$ test = $ preg_replace ("/ÃÂÂ/", '"', $ text); 'не должен иметь' $ 'перед' preg_replace'. Попробуйте теперь с помощью '$ test = preg_replace ("/Ã,Â/", '"', $ text); 'и поместите пробел в' echo $ test; 'no biggie, но он отделяет ваше эхо от переменной 'echo $ test;' –

+0

$ text = 'это листинг Title Ã, с проблемой кодирования'; $ test = utf8_decode ($ text); сейчас я получаю это это листингTitle  с проблемой кодирования –

ответ

8

Проверить Этот PHP класс Кодирование с участием популярной кодировки в github

Usage:

$utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string); 

$latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string); 

также:

$utf8_string = Encoding::fixUTF8($garbled_utf8_string); 

Примеры:

echo Encoding::fixUTF8("Fédération Camerounaise de Football"); 
echo Encoding::fixUTF8("FÃédÃération Camerounaise de Football"); 
echo Encoding::fixUTF8("FÃÃédÃÃération Camerounaise de Football"); 
echo Encoding::fixUTF8("FÃÃÃédÃÃÃération Camerounaise de Football"); 

будет оу tput:

Fédération Camerounaise de Football 
Fédération Camerounaise de Football 
Fédération Camerounaise de Football 
Fédération Camerounaise de Football 

UPDATE:

Проверьте это: (я проверил это работает)

$output = 'this is a listingTitle  with an encoding problem'; 
$output = preg_replace('/[^(\x20-\x7F)]*/','', $output); 
echo($output); 

Выход:

this is a listingTitle with an encoding problem. 

Выход ПИК:

enter image description here

+0

Hum Html Очиститель классный! Но он не удаляет ошибку кодирования. :( –

+0

1- u 'SET NAMES utf8' перед вставкой данных? 2- проверьте' PhpMyadmin' и скажите мне, что у вас в кодировке? 3- 'AddDefaultCharset UTF-8' в apache conf –

+0

Теперь я это делаю (установите UTF-8), но это не проблема, данные уже находятся в базе данных, теперь все работает нормально, но старый список имеет такую ​​ошибку. Моя кодировка - utf-8_general_ci –

0

Раньше у меня также была та же проблема. При получении данных из xml каналов на нескольких языках.

После борьбы я нашел решение, создав все в кодировке utf8.

1) База данных коалиции и кодировки.

2) Подключение к базе данных.

3) html страница type.

+0

Это то, что я сделал вначале. Но похоже, что эти ошибки находятся в базе данных. –

+0

Да, это не сработало бы для уже сохраненного содержимого в базе данных. Для этого вам нужно их обновить. Но с этого момента новые записи будут прекрасными. –

+0

Да, я знаю это, :) Но теперь мне нужно попытаться исправить те старые листинги, которые имеют некоторую ошибку: S –

Смежные вопросы