Показать полную графическую версию : Как прекодлировать строку из одной кодировки в другую
Vlad Drakula
21-06-2004, 18:51
Как прекодлировать строку из одной кодировки в другую?
есть набор сторок, они могут быть все в разных кодировках, как мне перевести их в cp1251, в доке не смог найти такой функции.
Prisoner
21-06-2004, 19:24
А convert_cyr_string
(PHP 3>= 3.0.6, PHP 4)
convert_cyr_string - конвертирует один набор символов кириллицы в другой.
Описание
string convert_cyr_string (string str, string from, string to)
Эта функция возвращает данную строку, конвертированную из одного набора символов кириллицы в другой. Аргументы from и to это односимвольные аргументы, представляющие исходный и целевой наборы кириллицы. Поддерживаются типы:
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic не может помочь отцу русск... тьфу! в общем не может помочь? :)
вот (http://www.opennet.ru/openforum/vsluhforumID8/214.html) легкий и необременительный *:) , но меж тем достаточно распространенный способ на Perl,- его можно пользовать и на PHP. Только тут win2koi, соответственно надо поменять местами то, на что меняется.
Вот (http://dh.opennet.ru/main.html) Перекодировщик alt<->koi, win<->koi, win<->alt v 1.0 от DH.
Можно еще системными программами пользоваться.
А может быть кто-нибудь предложит что-нибудь покороче?
Добавлено:
Prisoner
вот :) спасибо (это я пока писала, не посмотрела, что ответ уже есть) Пошла учить матчасть (те PHP) :)
Vlad Drakula
21-06-2004, 20:05
Prisoner
спасибо, вилимо просто просмотрел...
но вот в чем дело, как я понял ее нельзя использовать с юникодом :(
для юникода есть utf8_decode.
сейчас буду экспериментировать, посомтрим что будет.
Добавлено:
теоретически должно быть так:
$s = utf8_decode( $s );
$s = convert_cyr_string( $s, 'i', 'w' );
но вместо русских букв выдает вопросики.
но при этом:
$s = convert_cyr_string( utf8_decode( utf8_encode( convert_cyr_string( 'a Вдал - ', 'w', 'i' ) )) , 'i', 'w' );
работает обсолютно нармально!
собственно вопрос:
в чем может быть подстава?
известно что исходная строка в UTF-8 (сам проверял)
Посмотри на php.net (http://ru.php.net/convert_cyr_string) в обсуждении документации в том числе про utf
Vlad Drakula
22-06-2004, 01:19
mar
спасибо, зря я не ходил раньше на этот ресурс надо будет по том какнибуть там по бродить!
vadimiron
27-06-2004, 21:35
Vlad Drakula
а iconv не подходит??
эта функция тоже вроде перекодировкой занимается
Vlad Drakula
28-06-2004, 08:10
vadimiron
не подходит!
теоретически подходит, но практически текст не перекодирует.
т.е. если с помошью нее создавать текст в utf-8 то обратно она его перекодирует, а если брать из других источноков, то не перикодирует, я ее хотел использовать, но пришлось писать свою функцию.
Dutchman Mihel
28-06-2004, 12:01
Vlad Drakula
возможно дело в несвежести iconv библиотеки
Vlad Drakula
28-06-2004, 18:52
Dutchman Mihel
врятли!
я поставил PHP 4.3.7
Dutchman Mihel
05-07-2004, 16:01
Vlad Drakula
Можно попробовать функцию decode
насколько я понял она работает с utf8 (+ еще 150 кодировок) без проблем
Правда два но
1) в системе должна быть установлена libdecode.so
2) работоспособного decode.dll для win я не нашел
Dutchman Mihel
05-07-2004, 22:56
сорри речь была о recode
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.