Unicode - это путь в будущее, посмотрите, например, http://msdn.microsoft.com/en-us/library/windows/desktop/dd374089%28v=vs.85%29.aspx, где они уже говорят, что «некоторые более новые функции поддерживают только версии Unicode». Отметьте слово «новее». Строковые классы .Net, например, являются юникодом, как и строковые классы Java.
Использование юникода не темное искусство, на самом деле это делает работу с разными языками невероятно простой. В моем проекте свободного времени я использую JSP, чтобы принять пользовательский ввод для словаря на двух языках (по выбору пользователя), затем обработать их (сортировка, извлечение подстрок, поиск, объединение) в Java и, наконец, записать их в БД используя JDBC. После этого я могу искать и извлекать их из БД, обрабатывать их и отображать на странице http. Мне пришлось настроить свою среду разработки для поддержки UTF-8 и постоянно использовать UTF-8, но с того момента, как я это сделал, это работает для каждой раскладки языка / клавиатуры, которую поддерживает ОС, и я даже больше не буду беспокоиться. В том числе японский, арабский, деванагари, русский. Простой щелчок мыши меняет раскладку клавиатуры, и программа все равно работает. Это работает в Linux, Windows XP, Windows 7, будь то 32-битной или 64-битной. БД, которую я использую, поддерживает это во всех этих средах, в том числе и в среде dev (eclipse / Java). Мне просто не нужно больше заботиться. Конечно, если вы сортируете арабские строки, вы должны знать кое-что об арабском языке, об алгоритме сортировки и о сравнении строк для используемых вами классов строк. Но это обычно документируется.
Конфигурирование среды разработки означает, конечно, что вы знаете места, где это уместно. Они включают, но не ограничиваются классами строк, которые вы будете использовать, кодировкой, используемой вашим редактором, кодировкой шаблонов (для XML, HTML, файлов ресурсов и т. Д.), Таблицами базы данных ... Но однажды Вы настроили его, используя последовательно одну и только одну кодировку символов, это очень мощная и чрезвычайно простая в использовании настройка.
Вам даже не нужно беспокоиться о деталях Unicode. Если вы это сделаете, вы обнаружите, например, что можно узнать, в каком диапазоне находятся все символы из определенной локали, и вы можете извлечь весь арабский текст из строки Unicode, просто выделив этот диапазон символов. Очень мило.
Смысл в том, чтобы последовательно использовать одну кодировку во всем решении. Если используются разные кодировки, и вы не знаете об этом, это может стать основной причиной серьезной головной боли. Если вы сознательно используете разные кодировки символов одновременно, и это работает правильно, то это, на самом деле, может быть близко к некоторому мрачному искусству :-) Что вам нужно будет использовать, если вам придется ссылаться на библиотеки, которые его не поддерживают , То же самое относится и к библиотекам, которые не используют его постоянно, конечно.
(Конечно, даже если вы используете одну конкретную кодировку, вы должны ознакомиться, особенно с классами строк, которые вы используете. Поэтому, если вам не нужна поддержка более чем одного языка, самый простой способ - это просто использовать настройка по умолчанию вашей среды разработки для вашей локали).