После дальнейших исследований я обнаружил, что мне действительно нужна графическая база данных, и та, которая выделяется как наиболее используемая и с лучшей поддержкой и интеграцией, - это Neo4j ( https://neo4j.com ) с интерфейсом в React, возможно, так как они предлагают официальный драйвер для JavaScript.
(Windows всегда использует UTF-16? например, в японских версиях)
Да, WCHAR NT всегда является UTF-16LE.
(‘Системная кодовая страница’, которая для японских установок является действительно cp932/Shift-JIS, все еще существует в NT в пользу многих, много приложений, которые не являются собственными Unicode, пути FAT32, и так далее.)
Однако wchar_t, как гарантируют, не составит 16 битов, и на Linux это не будет, UTF-32 (UCS-4) используется. Таким образом, wcstombs_l вряд ли будет счастлив.
Правильная Вещь состояла бы в том, чтобы пользоваться библиотекой как iconv для чтения его в в то, какой бы ни формат Вы используете внутренне - по-видимому, wchar_t. Вы могли попытаться взломать его сами путем сования байтов, но Вы, вероятно, получите вещи как Суррогаты неправильно.
Runing "локаль-a" на моих актуальных машинах Ubuntu и Mac OS X приводит к нулевым локалям с utf-16 на их имена.
Действительно, Linux не может использовать UTF-16 в качестве кодировки по умолчанию локали благодаря всему \0s.
Самым простым путем является преобразование файл от utf16 до utf8 собственного кодирования UNIX, и затем считайте его,
iconv -f utf16 -t utf8 file_in.txt -o file_out.txt
Можно также использовать iconv (3) (см. человека 3 iconv) преобразовать строку с помощью C. Большинство других языков имеет привязку к iconv также.
Чем Вы может использовать любую локаль UTF-8 как en_US.UTF-8, которые обычно являются по умолчанию на большинстве дистрибутивов Linux.
Я настоятельно рекомендовал бы использовать Unicode, кодирующий внутренним представлением Вашей программы. Используйте или UTF-16 или UTF-8. Если Вы используете UTF-16 внутренне, то, очевидно, никакой перевод не требуется. При использовании UTF-8 можно использовать локаль с .UTF-8
в нем такой как en_US.UTF-8
.
Можно читать как двоичный файл, затем сделать собственное быстрое преобразование: http://unicode.org/faq/utf_bom.html#utf16-3, Но, вероятно, более безопасно пользоваться библиотекой (как libiconv), который обрабатывает недопустимые последовательности правильно.