- 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
stasmarkin 17.03.2015 11:56 # +12
laMer007 17.03.2015 23:51 # +3
Xom94ok 17.03.2015 13:37 # +2
У нас в одном проекте смешались исходники на utf8, cp1251, cp866 и koi8r. Просьбы авторов перевести всё на utf8 были перенаправлены в жопу; хорошо, что этот ад уже завершился :)
bormand 17.03.2015 15:58 # +3
Бро, дай я тебя обниму!
P.S. Правда у нас 866, слава богу, в исходниках нету. Но есть в некоторых других местах...
kegdan 17.03.2015 16:43 # +1
bormand 17.03.2015 16:55 # +1
Слава богу, у нас таких нет. Пронесло.
bormand 17.03.2015 16:56 # +1
kegdan 17.03.2015 16:58 # +3
laMer007 17.03.2015 23:52 # 0
Fike 18.03.2015 01:03 # +1
laMer007 18.03.2015 02:31 # +1
Fike 18.03.2015 04:04 # +1
kegdan 18.03.2015 05:08 # +1
Fike 18.03.2015 06:16 # 0
(это он по серьезу тогда заявил)
kegdan 18.03.2015 06:40 # +2
guest 19.03.2015 01:08 # 0
bormand 19.03.2015 06:10 # 0
guest 19.03.2015 23:23 # 0
Xom94ok 20.03.2015 06:07 # +1
Fike 17.03.2015 15:44 # +2
guest 17.03.2015 18:38 # +1
Stallman 17.03.2015 23:04 # +3
bormand 18.03.2015 06:13 # +1
gost 18.03.2015 12:14 # +5
kegdan 18.03.2015 15:13 # −4
roman-kashitsyn 18.03.2015 15:18 # +7
Vasiliy 18.03.2015 17:59 # 0
3.14159265 18.03.2015 18:22 # 0
А как же ASCII?
bormand 18.03.2015 18:43 # +1
А это - одна из самых лютых ошибок в истории программирования. Настолько лютая, что даже в 2015 году многие проги, написанные в районе америки, от неё страдают... У них же всё работает.
3.14159265 18.03.2015 19:26 # 0
>А это - одна из самых лютых ошибок в истории программирования.
Тогда не используй её, в чём проблема. Пробел не кодируй в 0x20 итд где-то до буковки "z" или знака ~.
bormand 18.03.2015 19:48 # 0
> все ваши utf-8, cp1251 и 866 по-прежнему её юзают
Вот в том и трабла - ascii породила 100500 несовместимых кодировок.
bormand 18.03.2015 19:54 # +1
Создавая иллюзию совместимости на первых 128 символах. Вот если бы все кодировки были совсем разными - народ бы быстрее задумался о юникоде и utf-8.
guest 18.03.2015 21:07 # 0
bormand 18.03.2015 19:52 # +1
Встречался, может быть, с труъ семибитной кодировкой в смсках? Вот там по этому пути и пошли... Парсить её тот еще пиздец. Зато аж 140 символов латиницы влезает в 128 байтный пакет!
3.14159265 18.03.2015 20:05 # 0
>Парсить её тот еще пиздец.
Чего? Просто 7-битную кодировку создавали под семибитные машины.
>Вот в том и трабла - ascii породила 100500 несовместимых кодировок.
Это как K&R обвинять в том что наворотил Сиплюструп.
>Создавая иллюзию совместимости на первых 128 символах.
Тот же base64 прекрасен http-gzip практически убивает избыточность.
bormand 18.03.2015 20:07 # 0
> Чего?
Ну SMS'очная кодировке реально 7-битная - в 7 байтах лежит 8 символов. Вот поэтому парсить её - тот ещё пиздец. И маловероятно, что эту кодировочку пилили под 7-битные машины. Всё-таки сотики - достаточно свежее изобретение.
3.14159265 18.03.2015 20:07 # 0
Это понятно, но столо прочитать до конца:
>>>Просто 7-битную кодировку создавали под семибитные машины.
На момент разработки была отличная кодировка.
bormand 18.03.2015 20:12 # 0
Но ведь SMS'очную кодировку разрабатывали не под 7-битные машины... Вики говорит, что смски на GSM в 93м году появились.
3.14159265 18.03.2015 20:14 # 0
3.14159265 18.03.2015 20:17 # +3
GSM 03.38!=ASCII
Они имеют совсем разные кодовые таблицы
bormand 18.03.2015 20:22 # 0
Я её привёл как пример труЪ 7-битной кодировки, несовместимой с ASCII.
3.14159265 18.03.2015 20:24 # 0
Ну то есть основной пиздец не в том что она 7-битная, а в том что она несовместима с ASCII, верно?
bormand 18.03.2015 20:27 # 0
Основной пиздец в том, что семибитную кодировку компактно упихали в восьмибитные байты. Рай для байтоёба.
> несовместима с ASCII
А вот это, как раз, совсем не мешает. Один хер табличку для перекодировки пришлось бы мутить.
3.14159265 18.03.2015 20:33 # 0
Если б они упихали некомпактно я полагаю это вызвало гораздо больше БАЙТОНЕГОДОВАНИЯ.
На самом деле написать 1 раз функцию передрочки можно за час (еще и с тестами) или даже быстрее. Не вижу проблемы.
1024-- 18.03.2015 20:24 # +1
- Тут место осталось, всего 10 символов. Не знаем, что делать.
- А не х*йнуть ли нам 10 рандомных греческих букв?
- Отличная идея, шеф!
3.14159265 18.03.2015 20:38 # +1
Это не бета, а немецкая буква (читается как ss или z, не помню)
ß
Там вообще полно всяких западноеуропейских букв типа гласных с амляутами, скандинавских (ø,Å), турецких (Ç) и еще хер знает каких.
1024-- 18.03.2015 20:42 # 0
Нет, я скорее 0x11 добавил к греческим вместе с 0x10..0x1A.
3.14159265 18.03.2015 20:46 # +1
Мне думается большинство греческих в капсе имеет такой же вид как и латинские.
А они добавили только отсутствующие
Так што есть греки смогут писать капсом на родном языке, при этом не транслитя.
gost 18.03.2015 18:54 # 0
bormand 18.03.2015 18:57 # 0
3.14159265 18.03.2015 19:29 # 0
Поделись, из какой таблицы кодирования, по-твоему, берутся коды для символов в ссылке http://govnokod.ru/17807?
gost 18.03.2015 20:28 # +1
Из UTF-8.
3.14159265 18.03.2015 20:30 # 0
Ээээ.
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.
bormand 18.03.2015 20:33 # 0
Это они там имеют. А парой слов раньше, на фразе "для символов в ссылке" - не имеют.
3.14159265 18.03.2015 20:34 # 0
gost 18.03.2015 20:33 # 0
3.14159265 18.03.2015 20:35 # 0
Любой текст в ASCII - это текст в UTF-8.
gost 18.03.2015 20:37 # +1
guest 18.03.2015 21:06 # +3
bormand 18.03.2015 21:12 # +1
3.14159265 18.03.2015 21:14 # +1
У нас в одном проекте смешались исходники на utf8, cp1251, cp866 и koi8r. Просьбы авторов перевести всё на utf8 были перенаправлены в жопу;
GOTO 20: http://govnokod.ru/17807#comment267195
bormand 18.03.2015 21:16 # +1
3.14159265 18.03.2015 21:18 # +1
1. кто сказал, что представления в памяти и на диске/в сети должны совпадать?
2. у вас на диск пишется в cp866, а по сети utf-8, у меня винда ну чем нам помешает лишняя cp1251?
3. ...
4. Помогите, смешались кодировки utf8, cp1251, cp866 и koi8r. ЧТО ДЕЛАТЬ?
bormand 18.03.2015 21:21 # 0
Тащемта, если в памяти какое-то из представлений юникода - ничего не делать. Только не забывать выставить правильную кодировку на стримах и коннектах к БД.
guest 18.03.2015 22:24 # 0
>Любые кодировки, кроме UTF-8 - самая большая ошибка в истории кодировок.