Конвертирование DOS->WIN

AlexUnder

Guest
Конвертирование DOS->WIN

Пол интернета облазил, всевозможные доки перерыл, все перепробовал - не получается преобразовать строку с DOS кодировкой в WIN... Функция convert_cyr_string($str,"a","w") не помогает, iconv() и mb_convert_encoding() не предлагайте, а то на сервере эти модули не стоят. Может я что не так делаю, или есть другие способы???
 

Demiurg

Guest
как это не помогает, ты уверен, что у тебя текст в дос ?
 

KR

alive in new life
ну для начала я бы написал
convert_cyr_string($str,"d","w") хотя скорее всего разницы нет

во-вторых, работа convert_cyr_string зависит от настроек локали http://ru3.php.net/setlocale

в-третьих в любой ситуации поможет http://ru3.php.net/strtr
 

Demiurg

Guest
>во-вторых, работа convert_cyr_string зависит от настроек локали
с этого места поподробнее пожалуйста.
 

tony2001

TeaM PHPClub
>во-вторых, работа convert_cyr_string зависит от настроек локали
ага, и таблицы перекодировки там зря тупо забиты в код.
 

KR

alive in new life
>>во-вторых, работа convert_cyr_string зависит от настроек локали
>с этого места поподробнее пожалуйста.

хм. в мане действительно ни слова об этом, но по факту получается что иногда convert_cyr_string действительно работает не так, как ожидается.

даже не знаю, что сказать.
 

tony2001

TeaM PHPClub
ну вот и выясни это иногда.
заодно выяснишь как может быть, что иногда 2+3 не становится равным 5-ти.
 

Demiurg

Guest
Не встречал. Да и как она может зависить, если это просто отображение одной таблицы в другую.
 

AlexUnder

Guest
Автор оригинала: Demiurg
как это не помогает, ты уверен, что у тебя текст в дос ?
не уверен, но судя по виду, да.
_R-_¤_<м-ЁЄ, 3 -RпЎап <----- это же оно?
 

Demiurg

Guest
Нет это не оно, переключикодировку в браузере и увидишь.
 

AlexUnder

Guest
Автор оригинала: Demiurg
Нет это не оно, переключикодировку в браузере и увидишь.
Точно не оно. Но какая тогда это кодировка? При просмотре в Фаре нажатием кнопки F8 этот текст переходит их такого состояния в нормальночитаемый русский и назад...
 

AlexUnder

Guest
Автор оригинала: tony2001
ISO
Ести так, то можно ли ее точное название или код, и воспринимает ли ее в качестве параметра convert_cyr_string ??

И еще ко всем вопрос, где можно таблицы взять, чтобы написать самому, просто может кто знает место, чтобы пол часа не тратить...
 

lucas

Guest
Скопировал _R-_¤_<м-ЁЄ, 3 -RпЎап в HTML'ку, открыл в IE, сменил кодирвку на Кириллица (DOS).
Судя по результату, в тексте шла речь о понедельнике/вторнике и каком-то месяце.
 

tony2001

TeaM PHPClub
это либо iso-8859-5, либо UTF-8
для iso - в мане написано.
для utf - [m]iconv[/m]();
 

AlexUnder

Guest
Автор оригинала: lucas
Скопировал _R-_¤_<м-ЁЄ, 3 -RпЎап в HTML'ку, открыл в IE, сменил кодирвку на Кириллица (DOS).
Судя по результату, в тексте шла речь о понедельнике/вторнике и каком-то месяце.
Кажется, это все таки DOS-овская кодировка.
И мне тоже кажется что досовская! Только вот почему-то не хочет она правильно перекодироваться с помощью РНР в виндовс...
Короче такое получается :
До : _R-_¤_<м-ЁЄ, 3 -RпЎап
После : _R-_Д_<Ш-ЙЛ, 3 -RСВТС
 

tony2001

TeaM PHPClub
>не хочет она правильно перекодироваться с помощью РНР в виндовс...
во-первых, у тебя строка эта битая.
во-вторых, не морочь голову и переключи _сейчас_ кодировку в браузере на ДОС, чтобы посмотреть как она перекодируется.
в-третьих, у твоего браузера стоит одна дефолтовая кодировка, а ты перекодируешь в другую.
в-четвертых, у всех работает, а у тебя - нет. конечно, это все виноваты.
 

AlexUnder

Guest
ВСЕ! все работает. Всем спасибо за помощь. Как всегда глюк был не там где копалось. И хотя я до конца не понял почему не работает так как сначала я писал, но это неважно.
Короче convert_cyr_string($str,"a","w"); работает если файл открывать fopen("file.txt","b"); а потом fread();, если fopen с атрибутом "r" - то бяка...
И если использовать file(); тоже ниче не получалось. Я почему-то не понимаю этого...
 

AlexUnder

Guest
Автор оригинала: tony2001
в-четвертых, у всех работает, а у тебя - нет. конечно, это все виноваты.
я понимаю как это выглядело. я никоим случаем не хотел сказать вся рота не в ногу один я в ногу, просто хотелось найти решение как можно быстрее, но копал совсем не там. А сами ж знаете, когда смотришь, и все правильно, но не работает .... то все варианты принимаются, даже баг в функции :)))
 
Сверху