Предположим, что у нас есть произвольная строка, s.
s обладает свойством быть от любой точки мира. Люди из США, Японии, Кореи, России, Китая и Греции все время пишут. К счастью, у нас нет путешественников во времени, которые используют Linear A.
Для обсуждения предположим, что мы хотим выполнять строковые операции, такие как:
- обратное
- Длина
- капитализировать
- строчными
- индекс в
и только потому, что это для обсуждения, позвольте предположить, что мы хотим сами написать эти процедуры (вместо того, чтобы хватать библиотеку), и у нас нет никакого устаревшего программного обеспечения для поддержки.
Существует 3 стандарта для Unicode: utf-8, utf-16 и utf-32, каждый из которых имеет плюсы и минусы. Но позвольте сказать, что я немного глуп, и я хочу, чтобы один Юникод правил для них всех (потому что трудно динамически адаптировать библиотеку для 3 различных типов строковых кодировок, которые сильно скрывают отличие от пользователя API).
- Какая кодировка является наиболее общей?
- Какая кодировка поддерживается wchar_t?
- Какая кодировка поддерживается STL?
- Являются ли эти кодировки полностью (или вовсе не пустыми)?
-
Цель этого вопроса - просвещать себя и других в полезной и полезной информации для Unicode: чтение RFC прекрасно, но есть "стек" информации, относящейся к компиляторам, языкам и операционным системам, которые RFC не используют но важно знать, как использовать Unicode в реальном приложении.