Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

На какой кодировке писать программы?

#javascript #java #кодировка


Какую кодировку выбирать для корпоративных приложений? Как для серверной части, так
и для клиентской. В чем отличие, если я буду писать программу (серверная - Java, клиентская
- JavaScript) на кодировке UTF-8, или на Windows-1251? К чему может привести ситуация,
когда серверная и клиентская части, написаны в разных кодировках? Ну и, на какой кодировке,
собственно, лучше писать программы. И, если некоторые пишут на Windows-1251, то чем
она лучше, чем UTF-8?
    


Ответы

Ответ 1



Всегда и везде выбирайте одинаковую кодировку для всех файлов, лучше всего UTF-8. Для PHP давным давно есть расширение MB_String позволяющее работать с юникод-строками. Java и Javascript стандартно работают с utf-8. Windows тоже давным давно корректно работает с UTF-8. Используют Windows-1251 если: Если проект старый. Надеются экономить на трафике.

Ответ 2



Моё субъективное мнение — все мизерные преимущества cp1251 не могут конкурировать с её главными недостатками — сомнительной переносимостью и невозможным i18n. Именно поэтому Java, как язык, главной задачей которого является обеспечение переносимости и того, что ваше приложение работает везде одинаково, использует UTF-8. Ваше приложение будет разумно вести себя только при использовании из России, где у всех стоит Windows и cp1251. Если же вам вдруг придётся выйти на более широкую аудиторию (или, например, кто-то будет пользоваться вашими приложениями из под мака, линукса или смартфона на андроиде), то, возможно, вы столкнётесь с неприятными спецэффектами. Разные кодировки на серверной и клиентской части гарантируют вам пачку весёлых багов как минимум. Тут уж точно вам никто не мешает прийти к единообразию.

Ответ 3



1251 лучше тем, что с ней корректно работают строковые функции PHP без мультибайтового расширения. Не лучше. "Проще, доступнее"(С) Магистр Йода. В модели с разделенными данными и логикой вы можете писать в любой кодировке, главное, точно знать кодировку данных: сама программа во всех кодировках будет выглядеть одинаково. Если у вас встречаются нелатинские символы и в серверной части и в клиентской, самое плохое - будут зюки. Этого можно избежать, если вовремя сделать приведение кодировки. (Стоит ли рассказывать, что необходимо переводить ТОЛЬКО из менее мощной кодировки в более мощную?) Для корпоративных приложений выбирайте 1251, если у всех винда: мороки будет меньше. Для всех остальных предпочтительнее utf

Ответ 4



Ответ сильно зависит от целевой платформы. UTF-8 конечно хорош, но если прожект под J2ME - он не покатит, поскольку там целевая кодировка ISO-8859-1. Кроме того, я уже сталкивался со случаями когда народ хочет иметь русские идентификаторы (да-да, есть такие фрукты - которых надо расстреливать, но они все равно есть, причем в серьезной отрасли - нашей оборонке, там это стандарт де-факто), и там народ активно юзает CP1251, а то и CP866. С этим можно не соглашаться, но это факт. P.S. При всех прочих, я естественно как нормальный джавер насколько возможно всегда стараюсь применить UTF-8

Комментариев нет:

Отправить комментарий