По состоянию на 2017-12-15, предел (по крайней мере, для моей учетной записи) кажется равным 12. (перед созданием моего 10-го проекта он сказал, что у меня осталось 3)
Странно, что ограничение кажется отличаться для каждого аккаунта. (либо это, либо они обновили его после ответа @ Pakpoom)
Ну, это не двоичное чтение? Все другие формы являются предметом интерпретации, и тогда становится важным точное кодирование и т. Д.
Хотя из-за спецификации, Unicode может быть обнаружен автоматически в некоторых случаях, он не всегда присутствует, и отказавший механизм обнаружения тогда равняется сломанной программе. Я предполагаю, что это причина того, почему большинство людей воздерживаются от этого.
UTF8-CPP может определять UTF8 (utf8 :: is_valid и utf8 :: find_invalid) и выполнять преобразование (utf8 :: utf16to8), если вы используете широкую строку. Отлично работает, в чем проблема?
Вы можете использовать комбинацию методов:
Как правило, большинство файлов Unicode начинаются с спецификации . Это означает, что если файл начинается с 0xfffe
или 0xfeff
, вы можете считать, что это Юникод. Не многие люди используют UTF-32 AFAIK, но вы все равно можете использовать метод спецификации, чтобы угадать (см. Страницу Wiki).
Если это файл UTF-8, вы можете использовать UTF8-CPP, чтобы преобразовать его в UTF-16 ( wstring
). Если это файл UTF-16, его может быть трудно читать с помощью стандартной библиотеки. Для этого вы можете обратиться к моему сообщению в блоге:
http://cfc.kizzx2.com/index.php/reading-a-unicode-utf16-file-in-windows-c/
Для UTF- 32 - Не знаю, использует ли кто-нибудь, так что опыта у меня нет: P