nixp.ru v3.0

26 декабря 2024,
четверг,
17:45:21 MSK

SKODnick написал 1 марта 2007 года в 13:29 (2998 просмотров) Ведет себя как мужчина; открыл 9 тем в форуме, оставил 15 комментариев на сайте.

Доброго времени суток.

Есть php+html скрипт (на самом деле их много), написанные в среде OS Windows XP в php expert editor, соотвественно кодировка windows-1251. При переносе этих скриптов на будущий сервер www, на котором стоит ubuntu 6.10, русские символы отображаются абракадаброй, что в примитивном gphpedit, что при при просмотре их через веб-браузер как локально, так и удаленно, браузер по умолчанию выставляет кодировку utf-8. Конечно, можно в начале каждой такой странички посылать

header(«Content-type: text/html; charset=windows-1251», true);

Но, во-первых это как-то мне кажется неправильно, а во-вторых, в среде linux если просматривать эти файлы, все равно русские символы отображаются абракадаброй.

Прошу вашей помощи в решении данного вопроса.

Спасибо.

myst

Сконвертируй их iconv в UTF-8.

Anarchist

Всё правильно.

Учи матчасть!

Сервер у тебя с этими скриптами что делает?

И с какого бодуна неправильным стало указание кодировки в заголовке?

Открою тебе страшную тайну: явление наблюдается не только для WWW и не только для случая текста в файлах. Но и для файловых серверов и имён файлов (кстати именно поэтому рекомендуется соблюдать осторожность с использованием кириллических имён файлов.

myst
Сконвертируй их iconv в UTF-8.

1. Еретик! Ну сколько можно говорить: единственно верной кодировкой является KOI8-R.

2. iconv не канает.

ЗЫ: Шуруп! Когда порядок перехода по TAB исправишь!?.

myst

Нихера KOI8-R не правильная. Однобайтовые кодировки — бред и пережитки прошлого. Я не хочу трахаться каждый раз, когда мне хочется почитать в оригинале Хайяма или Басё! UTF-8 тоже не идеал потому что кривохак для совместимости с ASCII. UCS2(4) — наше всё.

SKODnick

С помощью iconv перегнал все скрипты из ср1251 в utf8 и теперь русские буквы отображаются корректно, что в ubuntu linux, что в браузере в ubuntu, что в браузере в Windows, заходя на www-server ubuntu удаленно.

Спасибо.

Но возникла другая проблема — кодировка в mysql. Некорректно отображаются кириллические символы при выборке из базы.

Есть база, созданная в Windows mysql4.19, кодировка cp1251. На ubuntu linux mysql 5.0.24a, default-character-set=latin1. Необходимо существующую базу перегнать в ubuntu.

Подскажите, пожалуйста, как грамотно избавиться от этой проблемы? И вообще, в какой кодировке правильнее хранить БД?

Спасибо

Genie

c:>mysqldump --default-character-set=utf8 -r db.sql database

transfer to unix, convert to utf-8

$ mysql --default-character-set=utf8 database < db.sql

in php-scripts: add «set names utf8»

Anarchist
myst
Нихера KOI8-R не правильная. Однобайтовые кодировки — бред и пережитки прошлого. Я не хочу трахаться каждый раз, когда мне хочется почитать в оригинале Хайяма или Басё! UTF-8 тоже не идеал потому что кривохак для совместимости с ASCII. UCS2(4) — наше всё.

Двухбайтный UTF тоже идёт лесом.

ANCII — плод мирового заговора.

Но инерция.

И с учётом расклада рулит именно KOI8-R (ну пока не будет организована разработка и повсеместный переход на 4-байтный UTF.

myst

Это называется UCS4 ваще-то, когда все символы по 4 байта.

SKODnick
Genie
c:>mysqldump --default-character-set=utf8 -r db.sql database

transfer to unix, convert to utf-8

$ mysql --default-character-set=utf8 database < db.sql

in php-scripts: add «set names utf8»

Сделал все так, как ты описал, и при выборке из базы тех кириллических записей, которые были сделаны ещё в среде Windows, кириллические строки стали отображаться корректно. НО если я хочу добавить в базу какую-нить запись, написанную по-русски, то она либо отображается при выборке вопросиками, либо выдает ошибку:

Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

:(

SKODnick

Все, всем спасибо за помощь.

Проблема, описанная в последнем моем посте была исправлена добавлением необходимых строк в my.cnf.

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.