Скрипт перекодирует сам?

Sergy

Guest
Скрипт перекодирует сам?

IIS, Win2000 XP Pro, MSSQL Server 2000
Проблема в следующем:
- читаю файл расположенный на сервере fread'ом (файл в кодировке x-cp866 (это точно)).
- делаю читаемым строкам convert_cyr_string ($str,'a','w')
- пишу в базу (или вывожу в браузер (экран), это несущественно)
Все работает, если я файл вызываю через браузер.

Если вызываю файл из консоли "cli\php.exe мой_файл" он выполняется, НО в базу (на экран консоли) выдаются крякозяблины... убираю convert... все работает из консоли, но не работает из браузера...

Где я торможу?
 

tony2001

TeaM PHPClub
в браузере кодировка cp1251, в консоли - cp866.
что тебя удивляет?
 

Sergy

Guest
Если не делаю convert_cyr_string, то:

1.Читаю файл, вывожу в браузере, переключаю IE в кодировку "кирилица DOS" и вижу все в нормальной кодировке.
2.Этим же скриптом вывожу на консоль - все в нормальной кодировке.

Почему прежеде чем записать в базу, в первом случае я должен сделать convert_cyr_string, а во втором нет?
 

tony2001

TeaM PHPClub
>Почему прежеде чем записать в базу, в первом случае я должен сделать
>convert_cyr_string, а во втором нет?
еще раз:
в браузере кодировка cp1251, в консоли - cp866.
 

Profic

just Profic (PHP5 BetaTeam)
Sergy
Да, да, да.
Я еще раз повторю: в браузере кодировка windows-1251, а в консоли cp866. Ферштейн? Но благодаря тому, что консоль может менять свою кодировку на лету это не проблема.
1) изменяем в консоли шрифт на юникодный (т.е. векторный)
2) выполняем комманду chcp 1251 там же
3) Радуемся полученному результату
 
Сверху