Кодировки в пхп
Пользователи, просматривающие топик: 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 ("а"=>"\xD0\xB0", "А"=>"\xD0\x90","б"=>"\xD0\xB1", "Б"=>"\xD0\x91", "в"=>"\xD0\xB2", "В"=>"\xD0\x92", "г"=>"\xD0\xB3", "Г"=>"\xD0\x93", "д"=>"\xD0\xB4", "Д"=>"\xD0\x94", "е"=>"\xD0\xB5", "Е"=>"\xD0\x95", "ё"=>"\xD1\x91", "Ё"=>"\xD0\x81", "ж"=>"\xD0\xB6", "Ж"=>"\xD0\x96", "з"=>"\xD0\xB7", "З"=>"\xD0\x97", "и"=>"\xD0\xB8", "И"=>"\xD0\x98", "й"=>"\xD0\xB9", "Й"=>"\xD0\x99", "к"=>"\xD0\xBA", "К"=>"\xD0\x9A", "л"=>"\xD0\xBB", "Л"=>"\xD0\x9B", "м"=>"\xD0\xBC", "М"=>"\xD0\x9C", "н"=>"\xD0\xBD", "Н"=>"\xD0\x9D", "о"=>"\xD0\xBE", "О"=>"\xD0\x9E", "п"=>"\xD0\xBF", "П"=>"\xD0\x9F", "р"=>"\xD1\x80", "Р"=>"\xD0\xA0", "с"=>"\xD1\x81", "С"=>"\xD0\xA1", "т"=>"\xD1\x82", "Т"=>"\xD0\xA2", "у"=>"\xD1\x83", "У"=>"\xD0\xA3", "ф"=>"\xD1\x84", "Ф"=>"\xD0\xA4", "х"=>"\xD1\x85", "Х"=>"\xD0\xA5", "ц"=>"\xD1\x86", "Ц"=>"\xD0\xA6", "ч"=>"\xD1\x87", "Ч"=>"\xD0\xA7", "ш"=>"\xD1\x88", "Ш"=>"\xD0\xA8", "щ"=>"\xD1\x89", "Щ"=>"\xD0\xA9", "ъ"=>"\xD1\x8A", "Ъ"=>"\xD0\xAA", "ы"=>"\xD1\x8B", "Ы"=>"\xD0\xAB", "ь"=>"\xD1\x8C", "Ь"=>"\xD0\xAC", "э"=>"\xD1\x8D", "Э"=>"\xD0\xAD", "ю"=>"\xD1\x8E", "Ю"=>"\xD0\xAE", "я"=>"\xD1\x8F", "Я"=>"\xD0\xAF") Если mb_convert_encoding() и впрямь мне не поможет(или объясните как, а то "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" в "ЮАБЦДЕ╦ФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" она мне не переводит, или как надо писать koi-8r), то есть ли у кого в запасах подобные массивы для других кодировок, или где их можно посмотреть. Заранее спасибо.
|
|
|
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) Зы: если ты все же считаешь, что бажит сам пхп, скинь код. помогу найти твою ошибку ;)
|
|
|
RE: Кодировки в пхп - 2008-05-09 13:40:44.703333
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
Orb, вери сэнкс за последние две функции
|
|
|
RE: Кодировки в пхп - 2008-05-09 14:58:03.653333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
никогда подобная задача не возникала… но прочитал аж заинтересовало… я думаю в сайт включить многоязыковую пддержку… собственно что мне требуется.. мне надо чтоб на французкой кодировке отображались русские буквы.. интересно как реализовать подобное на пхп с помощью исонв?
|
|
|
RE: Кодировки в пхп - 2008-05-09 15:02:15.313333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
quote:
мне надо чтоб на французкой кодировке отображались русские буквы.. такое невозможно! Зы: Парни, используйте юникод в своих проектах. Облегчит вам жизнь, честно)
|
|
|
RE: Кодировки в пхп - 2008-05-09 15:07:14.393333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
ты не понял задачу.. м некакто пох что использовать… поставить юникод не проблема.. .. мне надо чтоб статьи моего блока отображались на любом кампе мира одинаково.. а то бывает заходиш на сайт в там иероглифи иликвадратики… мне интересно если я в ютф-8 буду всё выводить будет отображаться у всех или в малазии, например, русские символы не покажет из-за того что не поддерживает русские
|
|
|
RE: Кодировки в пхп - 2008-05-09 16:08:30.590000
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
в юникод много языков встроенно, поэтому и рекомендуют его использовать.
|
|
|
RE: Кодировки в пхп - 2008-05-10 13:51:20.136666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
мне вот ещё интересно.. а со шрифтами как быть? я знаю что можно както сделать так чтоб у человека шрижт которого у него нет всётаки отображался правильно.. мож подскажите как такое сделать (не с помощью флэша)
|
|
|
RE: Кодировки в пхп - 2008-05-10 15:19:39.406666
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
с помощью картинок дохрена японских сайтов так сделано - их закорючки в картинках
|
|
|
RE: Кодировки в пхп - 2008-05-10 17:39:15.616666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
quote:
мне вот ещё интересно.. а со шрифтами как быть? я знаю что можно както сделать так чтоб у человека шрижт которого у него нет всётаки отображался правильно.. мож подскажите как такое сделать (не с помощью флэша) эта тема как раз решается с помощью флеша, но не напрямую как ты думаешь. (почитай, в последнем выпуске хакера затрагивалась эта тема) А вообще использовать надо стандартные шрифты, а не городить новогоднюю елку из своего сайта. Я раньше тоже думал: что за бред, как можно тока на стандартный шрифтах выруливать. Прошло время, пришло понимание. типо зачем же это все таки надо…
|
|
|
RE: Кодировки в пхп - 2008-05-13 18:48:16.196666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
та я пользуюсь итак стандартными… мне просто хочется сделать чтоб название сайта отображалось красиво) и основные кнопки.. а так просто перегоняю в картинки щас. думал мало ли.. может можно както иначе
|
|
|
RE: Кодировки в пхп - 2008-05-14 20:32:09.026666
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
<?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."<br>";
}
fclose($fd);
?>
подскажите, почему он не выводит 1ую строку из файла, а только все остальные?
|
|
|
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
|
|
|
RE: Кодировки в пхп - 2008-05-14 22:48:17.713333
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
никакой разницы)
|
|
|
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ли так не выведет - значит опять же тупиш =)
|
|
|
RE: Кодировки в пхп - 2008-05-23 00:22:31.276666
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
не, я не настолько туплю) в твоих вариантах первая строка безусловно будет выводится…но почему она не выводится в моем? Причем если убрать функцию iconv из кода-все работает. У нее нет какой-нибудь специфики? почему такое может быть?
|
|
|
RE: Кодировки в пхп - 2008-05-23 09:14:20.190000
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
iconv может спотыкатся и слетать на непечатных символах. У самого было такое, что закачивал страницу с нета, менял кодировку и сохранял в бд. Так сохранялась только половина, убрал иконв - все норм.
|
|
|
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);
|
|
|
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 байта файла Типо маячка, что файл будет в ютеэфе :)
|
|
|
RE: Кодировки в пхп - 2008-05-26 13:21:10.530000
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
опечатался, 3х.
|
|
|
|
|