Форум -> PHP, JS, MySQL -> UTF-8 (а стоит ли игра свеч?) |
UTF-8 (а стоит ли игра свеч?) |
---|
Insecticide | Дата: 01.05.2008, в 00:32 | Сообщение №1 |
Активный участникПользователь №: 182 Сообщений: 130
| Вот чисто ради эксперимента потратил пол часа на перевод двига (не слаед) в UTF-8, и результат меня не порадовал.
Даже не в размере файлов дело, но время генерации подскочило аж в 2 раза(!).
Так вот вопрос: а так ли оно нужно? есть ли смысл? Стоит ли двойное снижение производительности тех возможностей, что дает эта кодировка?
Кто что думает? |
|
|
rocksmart | Дата: 01.05.2008, в 10:59 | Сообщение №2 |
СтарожилПользователь №: 261 Сообщений: 330
| а зачем UTF-8, это кодировка для телефонов? |
|
|
Insecticide | Дата: 01.05.2008, в 11:40 | Сообщение №3 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | а зачем UTF-8, это кодировка для телефонов? |
это международная кодировка. в ней двиг может работать абсолютно с любым языком и на любом языке. хоть на русском, хоть на китайском, хоть на древнегреческом... |
|
|
Djadka | Дата: 01.05.2008, в 11:57 | Сообщение №4 |
НовичокПользователь №: 372 Сообщений: 12
| Я ставлю сайт на двух языках и без utf-8 не обойтись не как. Языки очень отличаются друг от друга и есть специальные символы. Я не увидел другой возможность, как не перейти на Utf-8, если есть другой вариант подскажите. |
|
|
RRRinat | Дата: 02.05.2008, в 04:10 | Сообщение №5 |
Активный участникПользователь №: 135 Сообщений: 112
| Это та кодировка где до хрена символов :)
Я не пойму, а чем старый мультиязычный вариант плох? |
|
|
Insecticide | Дата: 02.05.2008, в 12:23 | Сообщение №6 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | Это та кодировка где до хрена символов :)
Я не пойму, а чем старый мультиязычный вариант плох? |
Да собстна ничем не плох. Кроме того, что БД хранится в одной определенной кодировке и навряд ли получится впихнуть в БД с cp1251 статью на китайском ;)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Insecticide 02.05.2008 г. в 12:24:38 |
|
|
Djadka | Дата: 02.05.2008, в 13:58 | Сообщение №7 |
НовичокПользователь №: 372 Сообщений: 12
| Вот и приходится жертвовать чем то. |
|
|
kej | Дата: 02.05.2008, в 20:58 | Сообщение №8 |
СтранникПользователь №: 384 Сообщений: 8
| Цитата | Я не пойму, а чем старый мультиязычный вариант плох? |
Старый вариант нормален, но скорее исключение из правил. При русско-эстонском сайте он единственный нормально работал с Вин-1251. Ни коппермин, ни пхпББ не работали в 1251, крякозяблы одни, а в УТФ нормально все было. Но себе Опен ставить не собираюсь пока.... |
|
|
Sys3X | Дата: 02.05.2008, в 22:37 | Сообщение №9 |
УчастникПользователь №: 190 Сообщений: 78
| Не вижу ничего гениального в Опенслаеде в связи с внедрением UTF8. Не нужно быть большим гением чтобы перевести скрипт на работу с UTF8 |
|
|
Insecticide | Дата: 02.05.2008, в 23:07 | Сообщение №10 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | Старый вариант нормален, но скорее исключение из правил. При русско-эстонском сайте он единственный нормально работал с Вин-1251. Ни коппермин, ни пхпББ не работали в 1251, крякозяблы одни, а в УТФ нормально все было. Но себе Опен ставить не собираюсь пока.... |
Ну это все очень легко исправляется. Достаточно лишь браузеру парочку заголовков послать, как он начинает замечательно все отображать...
Цитата | Не вижу ничего гениального в Опенслаеде в связи с внедрением UTF8. Не нужно быть большим гением чтобы перевести скрипт на работу с UTF8 |
+1
Опен - лажа.... |
|
|
rocksmart | Дата: 03.05.2008, в 05:15 | Сообщение №11 |
СтарожилПользователь №: 261 Сообщений: 330
| может кто подскажет прогу для компа для сохранения страниц в UTF-8, а то приходиться на телефон файлы кидать и черезнего сохранять |
|
|
Insecticide | Дата: 03.05.2008, в 11:12 | Сообщение №12 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | может кто подскажет прогу для компа для сохранения страниц в UTF-8, а то приходиться на телефон файлы кидать и черезнего сохранять |
блокнот Windows тебе в помощь ;)
Файл - Сохранить как - Кодировка UTF-8 |
|
|
moskmii | Дата: 04.05.2008, в 17:49 | Сообщение №13 |
Активный участникПользователь №: 96 Сообщений: 184
| Интересно, а как какуюнить версию Слаеда перевести в данную кодировку, делю сейчас сайт, на котором по идее могут общаться люди из разных стран (покрайней мере хотелось бы), как первести сайт на UTF-8 |
|
|
rocksmart | Дата: 04.05.2008, в 18:40 | Сообщение №14 |
СтарожилПользователь №: 261 Сообщений: 330
| Insecticide, спасибо.
Я бы тоже на utf перешел |
|
|
Insecticide | Дата: 04.05.2008, в 20:42 | Сообщение №15 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | Интересно, а как какуюнить версию Слаеда перевести в данную кодировку, делю сейчас сайт, на котором по идее могут общаться люди из разных стран (покрайней мере хотелось бы), как первести сайт на UTF-8 |
как бы не харахорился Эд, а делается это проще простого:
сохраняем все текстовые файлы системы в UTF-8
делаем дамп БД в файл и заменяем в нем строчку cp1251 (или иную аналогичную кодировку) на utf8
чистим БД, переводим ее в UTF-8
импротируем свежеиспеченный дамп обратно.
меняем в классе MySQL сопоставление кодировок на utf-8
Код | 1
| @mysql_query ('SET CHARACTER SET utf8'); |
в языковых файлах везде меняем кодировки на UTF-8
если браузер будет некорректно определять кодировку, то надо еще пару хитростей применить..
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Insecticide 04.05.2008 г. в 20:43:25 |
|
|
leo | Дата: 05.05.2008, в 10:05 | Сообщение №16 |
СтарожилПользователь №: 47 Сообщений: 321
| Кстати, а если в метатегах страницы не прописана кодировка - как ее определяет браузер? |
|
|
MrSmit | Дата: 05.05.2008, в 12:51 | Сообщение №17 |
НовичокПользователь №: 133 Сообщений: 20
| Нужна ваша помощь. Мне понадобилось сайт перевести на utf-8 так как сделал раздел с фильмами, а ссылки там ввиде магнет ссылок, но с ср1251 они криво заносятся в БД. Ну собственно я перевел БД и все файлы в эту кодировку. Но у меня начала вылазить ошибка вот такая
Код | 1
| Warning: Cannot modify header information - headers already sent by (output started at E:\Server\www\htdocs\_test\35\config\config_global.php:1) in E:\Server\www\htdocs\_test\35\function\security.php on line 110 |
. Я долго мучался, но так и не смог ее исправить. Я начал всю процедуру наново. Сделал, ошибка таже. Начал искать, и оказалось что при сохранении файла config_global.php и config_users.php в utf-8 появляется именно эта ошибка. Помогите ее устранить, очень сильно нужно переехать на utf, но пока загвоздка именно в этом.
110 строчка: setcookie("lang", $conf['language'], time() + intval($conf['user_c_t'])); Это функция get_lang
Помогите пожалуйста решить |
|
|
Insecticide | Дата: 05.05.2008, в 13:02 | Сообщение №18 |
Активный участникПользователь №: 182 Сообщений: 130
| Цитата | Кстати, а если в метатегах страницы не прописана кодировка - как ее определяет браузер? |
сервер вместе со страницей автоматом посылает заголовок, в котором указана дефолтная кодировка страницы (бывает так, что она не совпадает с реальным содержимым - руки оторвать тому, кто настраивал серв).
вот по этому заголовку и определяется кодировка документа.
проверено, на практике что мета никак не влияет на правильность определения (в опере по крайней мере точно). в мета я указывал верную кодировку, а сервером посылалась неверная. результат - браузер наплевал на мета и поверил серверу.
после того, как вручную средствами ПХП послал правильный заголовок с правильной кодировкой, браузер начал отображать страницу корректно.
Цитата | Нужна ваша помощь. Мне понадобилось сайт перевести на utf-8 так как сделал раздел с фильмами, а ссылки там ввиде магнет ссылок, но с ср1251 они криво заносятся в БД. Ну собственно я перевел БД и все файлы в эту кодировку. Но у меня начала вылазить ошибка вот такая |
проблема не в 110 строчке. проверь свой E:\Server\www\htdocs\_test\35\config\config_global.php
скорее всего перед <? у тебя пустая строка или пробел - удали. |
|
|
Sys3X | Дата: 07.05.2008, в 17:01 | Сообщение №19 |
УчастникПользователь №: 190 Сообщений: 78
| То какие посылать заголовки Apache можно указать прописыванием в .htaccess
Код | 1
| AddDefaultCharset UTF8 |
Для массового изменения кодировки содержимого файлов удобно использовать эту программу
Под UNIX быстрое изменение кодировки содержимого файлов удобно осуществлять через SSH при помощи iconv
Скрипт
Код | 1
| #!/bin/sh
# 1 - путь
# 2 - из какой кодировки
# 3 - в какую кодировку
find $1 -regex "$1/.*" | sort -r | while read f; do
fb=$(basename "$f");
fd=$(dirname "$f");
nfb=$(echo "$fb"|iconv -f $2 -t $3);
[ "$fb" = "$nfb" ] || (mv "$fd/$fb" "$fd/$nfb"; echo "$fd $fb -> $nfb";)
done |
Или вот так
Код | 1
| find . -name *.php -exec iconv -f windows-1251 -t utf-8 {} > {}.tmp && mv {}.tmp {} ; |
|
|
|
Sunvas | Дата: 07.05.2008, в 20:03 | Сообщение №20 |
ПрофиПользователь №: 181 Сообщений: 554
| Хочу внести одну поправку: далеко не обязательно переводить все файлы в UTF-8. Нужно перевести только те, где есть текстовая информация, которая будет выдаваться пользователю.
Конечно, файлы в разных кодировках не есть хорошо, зато вести на порядок меньше места. |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|