В последние годы я много занимался программированием на PHP, и одна вещь, которая меня раздражает, это слабая поддержка Unicode и многобайтовых строк (конечно, изначально их нет). Например, «htmlentities», кажется, очень популярная функция в мире PHP, и я обнаружил, что она очень раздражает, когда вы пытаетесь сохранить локализуемость каждой строки, храните только UTF-8 в своей базе данных, только поставляйте UTF -8 веб-страниц и т. Д. Внезапно где-то между вашей базой данных и браузером появляется эта безнадежно наивная функция, притворяющаяся, что каждый байт является символом и все портит.
Я бы просто полюбил , чтобы просто сбросить этот вид функций, они кажутся совершенно лишними. Нужно ли в наши дни писать '& auml;' вместо 'ä'? По крайней мере, мой Firefox кажется совершенно счастливым, чтобы отображать даже самые странные азиатские глифы, пока они подаются в правильной кодировке.
Обновление: Если быть точным: именованные объекты необходимы для всего, кроме отображения тегов HTML (как в "& lt;" для "<") </p>
Обновление 2:
@ Конрад: Вы говорите, что нет, именованные сущности не нужны?
@ Росс: Но не лучше ли очистить пользовательский ввод при его вводе, чтобы защитить мою логику вывода от подобных проблем? (конечно, при условии, что надежная дезинфекция на входе возможна - но тогда, если это не так, может ли она быть на выходе?)