Это больше вопрос MBCS, чем вопрос Unicode. Мне нужно создать API, который возвращает список структур, каждый экземпляр которого содержит символ Unicode в качестве одного из своих членов. Это в .NET, так что вы могли бы подумать, что я бы хотел UTF-16, но тогда для азиатских символов потребуются два символа. Как лучше всего возвращать символы Юникода?
- Использовать массив из 2 символов UTF-16. Протестируйте 1-й символ, чтобы узнать, не является ли он суррогатным, есть счет?
- Игнорировать суррогатную проблему и оставить ее вызывающей стороне для выяснения фактических структур кодировок диапазонов глифа?
- Вместо этого используйте строку, чтобы мне было все равно, если это один или два символа в длину?
- Использовать UTF-32
Что люди обычно делают для UTF-8? Я предполагаю, что они никогда не имеют дело с отдельными символами, и все хранится в строке (например, поиск символа в строке действительно выполняется путем поиска подстроки). Может быть, это программист на C ++, но строка кажется такой тяжелой.
Я думаю, что собираюсь сделать # 3. Что сделали другие?