|
|
|
| Скажите, что необходимо предусмотреть перед решением, какую использовать кодировку utf8 или windows-1251? Грубо говоря, в чем плюсы и минусы каждой кодировки. Если это где-то обсуждалось и есть "сводные таблицы", то буду очень признателен за ссылку.
Спасибо. | |
|
|
|
|
|
|
|
для: aetern
(20.08.2009 в 12:40)
| | >что необходимо предусмотреть
например ,бывает нужно учесть что например текст с русскими буквами весит больше байт в utf-8 чем в cp1251
, что при добавлении в поле типа TEXT mysql после отправленного SET NAMES 'utf8' могут посыпяться ошибки
Incorrect string value: '\xD1\xE5\xF0\xE2\xE5\xF0...' for column ......
при попытке добавить туда текст в cp1251
, что в php (версий <= 5.2 на вчерашний день точно) посчитать длинну строки простым strlen() можно только в байтах ,и придётся пользоваться установленой mbstring
, будет предпочтительней использовать
аналоги стандартных функций
mail() mb_send_mail()
strlen() mb_strlen()
strpos() mb_strpos()
strrpos() mb_strrpos()
substr() mb_substr()
strtolower() mb_strtolower()
strtoupper() mb_strtoupper()
substr_count() mb_substr_count()
ereg() mb_ereg()
eregi() mb_eregi()
ereg_replace() mb_ereg_replace()
eregi_replace() mb_eregi_replace()
split() mb_split()
и mbstring может быть задействована в конфигурирование, влияя на кодировку принимаемых данных
Example #1 Disable HTTP input conversion in php.ini
;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
mbstring.encoding_translation = Off
, создание/обращение (/к). файл(ов/ам) и пап(ок/ам):) с именами отличными от имён в кодировке поддерживаемой системой может не приносить желаемыъх результатов,)
, вобщем куча проблем , за исключением того что AJAX ,
MySQL, XML... заточено под utf-8 | |
|
|
|
|
|
|
|
для: heed
(20.08.2009 в 15:21)
| | >создание/обращение (/к). файл(ов/ам) и пап(ок/ам):) с именами отличными от имён в кодировке поддерживаемой системой может не приносить желаемыъх результатов,)
Стоит однако заметить, что никсовая консоль сейчас юникодная. | |
|
|
|
|
|
|
|
для: Loki
(20.08.2009 в 16:53)
| | У меня сложилось впечатление, что переход на utf-8 неизбежен. Лично я не понимаю, что там такого существенного, ради чего потребуется переделывать уже работающие сайты. Но меня беспокоит вот что: неужели все сайты, использующие 1251, начиная с какогото момента времени перестанут нормально показываться в сети? | |
|
|
|
|
|
|
|
для: Владимир55
(20.08.2009 в 22:02)
| | 1251 представляет весьма ограниченное число языков.
utf8 никаких ограничений на языки не накладывает.
Этим и существенно. | |
|
|
|
|
|
|
|
для: Trianon
(20.08.2009 в 23:44)
| | Я всё же не пойму суть этого ограничения.
Если сайт на русском плюс латиница, то зачем ему нужна кодировка, включающая какой-либо другой язык? | |
|
|
|
|
|
|
|
для: Владимир55
(21.08.2009 в 00:06)
| | Например вы хотите цитату на китайском вставить. Можно конечно на html написать но тогда искать по такому тексту очень сложно будет в базе. Так же есть другие символы которые не входят в cp1251 например символ евро . Если мне не изменяет память в cp1251 его нету, хотя могу и ошибаться. | |
|
|
|
|
|
|
|
для: Евгений Петров
(21.08.2009 в 00:24)
| | Если так, то да, utf8 имеет существенное преимущество. | |
|
|
|
|
|
|
|
для: Владимир55
(21.08.2009 в 01:59)
| | Я понял это преимущество спустя года четыре после установки своего сайта. После того, как это понял (вернее - возникла насущная необходимость многоязыковой поддержки, да и вап-сайтам нужен Юникод), дня три мудохался - переводил весь сайт в Юникод. Если кто только начинает заниматься веб-сайтами - лучше СРАЗУ ВСЁ делать в Юникоде (utf-8).
Простой пример: хранились у меня данные в файлах. Я решил их хранить в XML - очень удобно их разбирать. Пришлось кодировки все переделывать под юникод, т.к. в вин-1251 некорректно работало. | |
|
|
|
|
|
|
|
для: Владимир55
(21.08.2009 в 01:59)
| | Можно сказать проще: все современные технологии требуют юникода. Так что сайт на юникоде означает что если/когда вам потребуется дополнить его функционалом, то вам не придется заниматься кодировками и их преобразованием. | |
|
|
|
|
|
|
|
для: Loki
(21.08.2009 в 10:13)
| | Значит можно сделать такой вывод: если сайт задумывается с дальнейшим развитием и претендует на что-то глобальное и мультиязычное, то делаем utf8, если же это сайт без изысков, со стандартным набором русских символов, то cp1251.
А вот интересно, время загрузки одного рускоязычного сайта в обсуждаемых кодировках одинаково? | |
|
|
|
|
автор: ! (21.08.2009 в 21:19) |
|
|
для: aetern
(21.08.2009 в 20:42)
| | В UTF-8 не только "иноязычные символы", но и специальные, вроде приведенного символа евро, поэтому неудобства будут чувствоваться до перехода в "глобальное и мультиязычное".
Кстати, vkontakte на windows-1251, но там видны все символы, поскольку не затрагиваются последовательности "&#N;" и "&#xH;", но зато становится трудным передача текста "как есть". Придётся "&" переводить в "&". Поэтому использовать vkontakte в качестве решения проблем веб-программирования не выйдет.
Время загрузки формально конечно будет дольше, только на фоне нынешних скоростей оно не играет роли. | |
|
|
|
|
|
|
|
для: aetern
(21.08.2009 в 20:42)
| | Разное.
Не забывайте, в utf-8 один русский символ==два байта.
А вообще, ЮЗАЙТЕ unicode, это позволит использовать типографские символы типу «» ° — … © ....... | |
|
|
|
|
|
|
|
для: Akdmeh
(21.08.2009 в 21:24)
| | > А вообще, ЮЗАЙТЕ unicode, это позволит использовать типографские символы типу «» ° — … © .......
Эти символы есть и в windows-1251 | |
|
|
|
|
|
|
|
для: Fractured
(21.08.2009 в 21:34)
| | Да, извините, это есть. но не все. таких нет: ☺☻♥♦♣♠•◘○♪►☼ :)
Да... Правда я забыл, что на форуме кодировка Windows-1251:) | |
|
|
|
|
|
|
|
для: aetern
(21.08.2009 в 20:42)
| | а если просят сайт на литовском? Эстонском? Украинском языке? | |
|
|
|
|
|
|
|
для: Trianon
(22.08.2009 в 00:33)
| | > Украинском языке?
Кстати в 1251 есть символы і, ґ, є, ї ) | |
|
|
|