LINUX.ORG.RU

Ответ на: комментарий от dimaz-z

невозможностью тянуть за собой эту либу. надо что-нить попроще. хотя бы таблицы где-нить нарыть.

anonymous
()

Я когда-то писАл переконвертилку из UTF-8 в windows-1251 (в koi-8r некоторых буковок нету), но не могу навскидку сырцы найти. Помню, за полчаса программку наваял, прочитав вот это:

http://czyborra.com/utf/

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

<?
function utf8_win ($s)
{
  $s = strtr ($s, 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"=>"Я",
  ));
  return $s;
}
?>

theserg ★★★
()
Ответ на: комментарий от anonymous

> невозможностью тянуть за собой эту либу. надо что-нить попроще. хотя бы таблицы где-нить нарыть.

www.unicode.org там все есть включая все таблицы unicode.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от theserg

theserg (09.09.2005 21:25:52):

> не учи учёного, эта штука на многих сайтах работает, умник:/)

Да, действительно, почти UTF-8. Все буквы в win1251 лежат в UTF-16 ниже 0x800, поэтому они отображаются на двухбайтные последовательности, а особенность UTF-8 по части синхронизации такова, что пых-пыхова функция strtr сработает правильно. Я поначалу, грешным делом, подумал, что это -- UTF-16.

Но вот тебе пример:

=D0=AD=D1=82=D0=BE =E2=80=94 =E2=80=9CUTF=E2=80=9D=E2=80=A6=

recode utf-8/QP..koi8-r на эту строку выдает:

Это - "UTF"...

recode utf-8/QP..windows-1251 тоже правильно сработает -- все символы имеются в win1251 таблице.

А что выдаст твоя функция? Знаки препинания в приведенной строке не ASCIIшные.

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

>невозможностью тянуть за собой эту либу.

неужели она такая тяжелая?:)

> хотя бы таблицы где-нить нарыть.

а исходники iconv смотреть не пробовали?

fghj ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.