Я все еще пытаюсь решить, должен ли мой (домашний) проект использовать UTF-8 строки (реализованы в терминах std::string с дополнительными функциями UTF-8, если это необходимо) или с некоторой 16-разрядной строкой (реализованной как std:: wstring). Проект представляет собой язык программирования и среду (например, VB, это комбинация обоих).
Есть несколько пожеланий/ограничений:
- Было бы здорово, если бы он мог работать на ограниченном оборудовании, таком как компьютеры с ограниченной памятью.
- Я хочу, чтобы код запускался в Windows, Mac и (если позволяют ресурсы) Linux.
- Я использую wxWidgets в качестве моего слоя графического интерфейса, но мне нужен код, который взаимодействует с этим набором инструментов, ограниченным в углу (я буду иметь исполняемые файлы без GUI).
- Я бы хотел избежать работы с двумя разными типами строк при работе с видимым пользователем текстом и данными приложения.
В настоящее время я работаю с std::string с намерением использовать функции манипуляции UTF-8 только в случае необходимости. Это требует меньше памяти и, похоже, направлено на то, что многие приложения идут в любом случае.
Если вы рекомендуете 16-битную кодировку, которая: UTF-16? UCS-2? Еще один?