- 1
- 2
- 3
<?php
namespace application;
header('Content-Type: text/html; charset=windows-1251');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+163
<?php
namespace application;
header('Content-Type: text/html; charset=windows-1251');
Кто-то любит BDSM, а кто-то windows-1251
У нас в одном проекте смешались исходники на utf8, cp1251, cp866 и koi8r. Просьбы авторов перевести всё на utf8 были перенаправлены в жопу; хорошо, что этот ад уже завершился :)
Бро, дай я тебя обниму!
P.S. Правда у нас 866, слава богу, в исходниках нету. Но есть в некоторых других местах...
Слава богу, у нас таких нет. Пронесло.
(это он по серьезу тогда заявил)
А как же ASCII?
А это - одна из самых лютых ошибок в истории программирования. Настолько лютая, что даже в 2015 году многие проги, написанные в районе америки, от неё страдают... У них же всё работает.
>А это - одна из самых лютых ошибок в истории программирования.
Тогда не используй её, в чём проблема. Пробел не кодируй в 0x20 итд где-то до буковки "z" или знака ~.
> все ваши utf-8, cp1251 и 866 по-прежнему её юзают
Вот в том и трабла - ascii породила 100500 несовместимых кодировок.
Создавая иллюзию совместимости на первых 128 символах. Вот если бы все кодировки были совсем разными - народ бы быстрее задумался о юникоде и utf-8.
Встречался, может быть, с труъ семибитной кодировкой в смсках? Вот там по этому пути и пошли... Парсить её тот еще пиздец. Зато аж 140 символов латиницы влезает в 128 байтный пакет!
>Парсить её тот еще пиздец.
Чего? Просто 7-битную кодировку создавали под семибитные машины.
>Вот в том и трабла - ascii породила 100500 несовместимых кодировок.
Это как K&R обвинять в том что наворотил Сиплюструп.
>Создавая иллюзию совместимости на первых 128 символах.
Тот же base64 прекрасен http-gzip практически убивает избыточность.
> Чего?
Ну SMS'очная кодировке реально 7-битная - в 7 байтах лежит 8 символов. Вот поэтому парсить её - тот ещё пиздец. И маловероятно, что эту кодировочку пилили под 7-битные машины. Всё-таки сотики - достаточно свежее изобретение.
Это понятно, но столо прочитать до конца:
>>>Просто 7-битную кодировку создавали под семибитные машины.
На момент разработки была отличная кодировка.
Но ведь SMS'очную кодировку разрабатывали не под 7-битные машины... Вики говорит, что смски на GSM в 93м году появились.
GSM 03.38!=ASCII
Они имеют совсем разные кодовые таблицы
Я её привёл как пример труЪ 7-битной кодировки, несовместимой с ASCII.
Ну то есть основной пиздец не в том что она 7-битная, а в том что она несовместима с ASCII, верно?
Основной пиздец в том, что семибитную кодировку компактно упихали в восьмибитные байты. Рай для байтоёба.
> несовместима с ASCII
А вот это, как раз, совсем не мешает. Один хер табличку для перекодировки пришлось бы мутить.
Если б они упихали некомпактно я полагаю это вызвало гораздо больше БАЙТОНЕГОДОВАНИЯ.
На самом деле написать 1 раз функцию передрочки можно за час (еще и с тестами) или даже быстрее. Не вижу проблемы.
- Тут место осталось, всего 10 символов. Не знаем, что делать.
- А не х*йнуть ли нам 10 рандомных греческих букв?
- Отличная идея, шеф!
Это не бета, а немецкая буква (читается как ss или z, не помню)
ß
Там вообще полно всяких западноеуропейских букв типа гласных с амляутами, скандинавских (ø,Å), турецких (Ç) и еще хер знает каких.
Нет, я скорее 0x11 добавил к греческим вместе с 0x10..0x1A.
Мне думается большинство греческих в капсе имеет такой же вид как и латинские.
А они добавили только отсутствующие
Так што есть греки смогут писать капсом на родном языке, при этом не транслитя.
Поделись, из какой таблицы кодирования, по-твоему, берутся коды для символов в ссылке http://govnokod.ru/17807?
Из UTF-8.
Ээээ.
UTF-8 was designed for backward compatibility with ASCII and to avoid the complications of endianness and byte order marks in UTF-16 and UTF-32.
А так как все символы имеют коды <128, то они кодируются старой-доброй ASCII.
Это они там имеют. А парой слов раньше, на фразе "для символов в ссылке" - не имеют.
Любой текст в ASCII - это текст в UTF-8.
У нас в одном проекте смешались исходники на utf8, cp1251, cp866 и koi8r. Просьбы авторов перевести всё на utf8 были перенаправлены в жопу;
GOTO 20: http://govnokod.ru/17807#comment267195
1. кто сказал, что представления в памяти и на диске/в сети должны совпадать?
2. у вас на диск пишется в cp866, а по сети utf-8, у меня винда ну чем нам помешает лишняя cp1251?
3. ...
4. Помогите, смешались кодировки utf8, cp1251, cp866 и koi8r. ЧТО ДЕЛАТЬ?
Тащемта, если в памяти какое-то из представлений юникода - ничего не делать. Только не забывать выставить правильную кодировку на стримах и коннектах к БД.
>Любые кодировки, кроме UTF-8 - самая большая ошибка в истории кодировок.