Про юникод
Jan. 1st, 2015 09:38 pmСегодня я понял, что языков программирования, претендующих на звание "поддерживается работа со строками" - нет.
Ну, оно и раньше так было, но мучались только китайцы с японцами. А с приходом эмотиконов (var unicode_emoticons = "😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏"; с этим теперь столкнулись все, и делать вид что UCS-2 - это Unicode уже не выходит.
Ради интереса полез посмотреть в сорцы VK и фейсбука. Ну что, тысячи строк регексов, скан-кодов и if'ов шарашат туда-сюда эти кодпоинты, ради того чтобы юзер мог скопипастить смайлик в поле ввода.
Кто-то отдал месяц своей жизни на смайлики. Закат солнца вручную, привет!
С, Lua и Эрланг хотя бы не делают вид, что строки там поддерживаются. Но, знаете, пользоваться строковыми константами всё-таки иногда бывает удобно...
А, да, и RTL локали еще не забудьте.
UPD: отдельное "спасибо" авторам Han unification, из-за которого юникод потерял задуманное изначально свойство "смысл строки не меняется от локали", и мы имеем GB18030 и Shift-JIS.
Ну, оно и раньше так было, но мучались только китайцы с японцами. А с приходом эмотиконов (var unicode_emoticons = "😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏"; с этим теперь столкнулись все, и делать вид что UCS-2 - это Unicode уже не выходит.
Ради интереса полез посмотреть в сорцы VK и фейсбука. Ну что, тысячи строк регексов, скан-кодов и if'ов шарашат туда-сюда эти кодпоинты, ради того чтобы юзер мог скопипастить смайлик в поле ввода.
Кто-то отдал месяц своей жизни на смайлики. Закат солнца вручную, привет!
С, Lua и Эрланг хотя бы не делают вид, что строки там поддерживаются. Но, знаете, пользоваться строковыми константами всё-таки иногда бывает удобно...
А, да, и RTL локали еще не забудьте.
UPD: отдельное "спасибо" авторам Han unification, из-за которого юникод потерял задуманное изначально свойство "смысл строки не меняется от локали", и мы имеем GB18030 и Shift-JIS.