Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Кодировки в пхп

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Кодировки в пхп
Имя
Сообщение << Старые топики   Новые топики >>
Кодировки в пхп - 2008-05-08 21:56:49.476666   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
Упрощенно задача стоит следующая: дан русский текст, перевести его в различные кодировки и вывести на экран.
Есть такая mb_convert_encoding() функция, но что то не хорошо она как то переводит, да в koi-8 как не пытался, всегда ошибки выдает.
Нашел на одном сайте пример функций перевода из cp1251 to utf-8 следующим массивом:
array ("а"=&gt;"\xD0\xB0", "А"=&gt;"\xD0\x90","б"=&gt;"\xD0\xB1", "Б"=&gt;"\xD0\x91", "в"=&gt;"\xD0\xB2", "В"=&gt;"\xD0\x92", "г"=&gt;"\xD0\xB3", "Г"=&gt;"\xD0\x93", "д"=&gt;"\xD0\xB4", "Д"=&gt;"\xD0\x94", "е"=&gt;"\xD0\xB5", "Е"=&gt;"\xD0\x95", "ё"=&gt;"\xD1\x91", "Ё"=&gt;"\xD0\x81", "ж"=&gt;"\xD0\xB6", "Ж"=&gt;"\xD0\x96", "з"=&gt;"\xD0\xB7", "З"=&gt;"\xD0\x97", "и"=&gt;"\xD0\xB8", "И"=&gt;"\xD0\x98", "й"=&gt;"\xD0\xB9", "Й"=&gt;"\xD0\x99", "к"=&gt;"\xD0\xBA", "К"=&gt;"\xD0\x9A", "л"=&gt;"\xD0\xBB", "Л"=&gt;"\xD0\x9B", "м"=&gt;"\xD0\xBC", "М"=&gt;"\xD0\x9C", "н"=&gt;"\xD0\xBD", "Н"=&gt;"\xD0\x9D", "о"=&gt;"\xD0\xBE", "О"=&gt;"\xD0\x9E", "п"=&gt;"\xD0\xBF", "П"=&gt;"\xD0\x9F", "р"=&gt;"\xD1\x80", "Р"=&gt;"\xD0\xA0", "с"=&gt;"\xD1\x81", "С"=&gt;"\xD0\xA1", "т"=&gt;"\xD1\x82", "Т"=&gt;"\xD0\xA2", "у"=&gt;"\xD1\x83", "У"=&gt;"\xD0\xA3", "ф"=&gt;"\xD1\x84", "Ф"=&gt;"\xD0\xA4", "х"=&gt;"\xD1\x85", "Х"=&gt;"\xD0\xA5", "ц"=&gt;"\xD1\x86", "Ц"=&gt;"\xD0\xA6", "ч"=&gt;"\xD1\x87", "Ч"=&gt;"\xD0\xA7", "ш"=&gt;"\xD1\x88", "Ш"=&gt;"\xD0\xA8", "щ"=&gt;"\xD1\x89", "Щ"=&gt;"\xD0\xA9", "ъ"=&gt;"\xD1\x8A", "Ъ"=&gt;"\xD0\xAA", "ы"=&gt;"\xD1\x8B", "Ы"=&gt;"\xD0\xAB", "ь"=&gt;"\xD1\x8C", "Ь"=&gt;"\xD0\xAC", "э"=&gt;"\xD1\x8D", "Э"=&gt;"\xD0\xAD", "ю"=&gt;"\xD1\x8E", "Ю"=&gt;"\xD0\xAE", "я"=&gt;"\xD1\x8F", "Я"=&gt;"\xD0\xAF") Если mb_convert_encoding() и впрямь мне не поможет(или объясните как, а то "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" в "ЮАБЦДЕ╦ФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" она мне не переводит, или как надо писать koi-8r), то есть ли у кого в запасах подобные массивы для других кодировок, или где их можно посмотреть.

Заранее спасибо.
Post #: 1
RE: Кодировки в пхп - 2008-05-09 12:34:34.630000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Почитай мануал. Если ты считаешь, что какая-то из встроенных функций в php не рабочая, то думай, где ошибся сам.
Вот мануал. Ищи ошибки.
http://ru2.php.net/manual/ru/function.mb-convert-encoding.php
Лично я использую iconv (http://ru2.php.net/manual/ru/function.iconv.php)
Кто-то юзает convert_cyr_string (http://ru2.php.net/manual/ru/function.convert-cyr-string.php)

Зы: если ты все же считаешь, что бажит сам пхп, скинь код. помогу найти твою ошибку ;)
Post #: 2
RE: Кодировки в пхп - 2008-05-09 13:40:44.703333   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
Orb, вери сэнкс за последние две функции
Post #: 3
RE: Кодировки в пхп - 2008-05-09 14:58:03.653333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
никогда подобная задача не возникала…
но прочитал аж заинтересовало…
я думаю в сайт включить многоязыковую пддержку… собственно что мне требуется.. мне надо чтоб на французкой кодировке отображались русские буквы.. интересно как реализовать подобное на пхп с помощью исонв?
Post #: 4
RE: Кодировки в пхп - 2008-05-09 15:02:15.313333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

мне надо чтоб на французкой кодировке отображались русские буквы..

такое невозможно!
Зы: Парни, используйте юникод в своих проектах. Облегчит вам жизнь, честно)
Post #: 5
RE: Кодировки в пхп - 2008-05-09 15:07:14.393333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
ты не понял задачу.. м некакто пох что использовать… поставить юникод не проблема.. .. мне надо чтоб статьи моего блока отображались на любом кампе мира одинаково.. а то бывает заходиш на сайт в там иероглифи иликвадратики… мне интересно если я в ютф-8 буду всё выводить будет отображаться у всех или в малазии, например, русские символы не покажет из-за того что не поддерживает русские
Post #: 6
RE: Кодировки в пхп - 2008-05-09 16:08:30.590000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
в юникод много языков встроенно, поэтому и рекомендуют его использовать.
Post #: 7
RE: Кодировки в пхп - 2008-05-10 13:51:20.136666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
мне вот ещё интересно.. а со шрифтами как быть? я знаю что можно както сделать так чтоб у человека шрижт которого у него нет всётаки отображался правильно.. мож подскажите как такое сделать (не с помощью флэша)
Post #: 8
RE: Кодировки в пхп - 2008-05-10 15:19:39.406666   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
с помощью картинок
дохрена японских сайтов так сделано - их закорючки в картинках
Post #: 9
RE: Кодировки в пхп - 2008-05-10 17:39:15.616666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

мне вот ещё интересно.. а со шрифтами как быть? я знаю что можно както сделать так чтоб у человека шрижт которого у него нет всётаки отображался правильно.. мож подскажите как такое сделать (не с помощью флэша)

эта тема как раз решается с помощью флеша, но не напрямую как ты думаешь. (почитай, в последнем выпуске хакера затрагивалась эта тема)
А вообще использовать надо стандартные шрифты, а не городить новогоднюю елку из своего сайта. Я раньше тоже думал: что за бред, как можно тока на стандартный шрифтах выруливать. Прошло время, пришло понимание. типо зачем же это все таки надо…
Post #: 10
RE: Кодировки в пхп - 2008-05-13 18:48:16.196666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
та я пользуюсь итак стандартными… мне просто хочется сделать чтоб название сайта отображалось красиво) и основные кнопки.. а так просто перегоняю в картинки щас. думал мало ли.. может можно както иначе
Post #: 11
RE: Кодировки в пхп - 2008-05-14 20:32:09.026666   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
&lt;?php $file_name = $file_s; $fd = fopen($file_s, "r"); while(!feof($fd)) { $arr = fgets($fd, 1024); $carr = iconv("UTF-8", "KOI8-U", $arr); $koi8_arr = convert_cyr_string($carr, w, k); echo $koi8_arr."&lt;br&gt;"; } fclose($fd); ?&gt;
подскажите, почему он не выводит 1ую строку из файла, а только все остальные?
Post #: 12
RE: Кодировки в пхп - 2008-05-14 20:49:50.853333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

convert_cyr_string($carr, w, k);

а это как понимать? оО
может: convert_cyr_string($carr, "w", "k"); :D
Post #: 13
RE: Кодировки в пхп - 2008-05-14 22:48:17.713333   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
никакой разницы)
Post #: 14
RE: Кодировки в пхп - 2008-05-15 04:00:46.173333   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
первую строку?

$file = file(file.txt);
echo $file[0];

у тя не выводит? значит тупиш.

попробуй
while(!feof($fd))
{
echo $arr = fgets($fd, 1024);
$carr = iconv("UTF-8", "KOI8-U", $arr);
$koi8_arr = convert_cyr_string($carr, w, k);
//echo $koi8_arr."<br>";
}

ecли так не выведет - значит опять же тупиш =)

Post #: 15
RE: Кодировки в пхп - 2008-05-23 00:22:31.276666   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
не, я не настолько туплю) в твоих вариантах первая строка безусловно будет выводится…но почему она не выводится в моем? Причем если убрать функцию iconv из кода-все работает. У нее нет какой-нибудь специфики? почему такое может быть?
Post #: 16
RE: Кодировки в пхп - 2008-05-23 09:14:20.190000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
iconv может спотыкатся и слетать на непечатных символах. У самого было такое, что закачивал страницу с нета, менял кодировку и сохранял в бд. Так сохранялась только половина, убрал иконв - все норм.
Post #: 17
RE: Кодировки в пхп - 2008-05-26 01:01:17.920000   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
Ну почти так, все дело оказалось в первых 2х байтах файла, записанного в УТФ-8.
Решилось добавлением следующего кода:
$fp = fopen("1.txt", "r"); $bom = fread($fp, 3); if ($bom != "\xEF\xBB\xBF") rewind($fp, 0);
Post #: 18
RE: Кодировки в пхп - 2008-05-26 09:21:41.816666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
это сигнатура UTF-8 или BOM (Byte Order Mark).
Она занимает первые 3 байта файла
Типо маячка, что файл будет в ютеэфе :)
Post #: 19
RE: Кодировки в пхп - 2008-05-26 13:21:10.530000   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
опечатался, 3х.
Post #: 20
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Кодировки в пхп







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.