У меня есть написанный код, который читает текст из файла и считает слова и сколько раз они повторяются, а также ссылки cout'ing URL. Но я не знаю, как заставить код читать литовские буквы. Я не нашел в интернете внятного ответа на этот вопрос. Какие-либо предложения? Спасибо.

-1
BunnyEnergizer 14 Июн 2020 в 22:08

1 ответ

Лучший ответ

Важный вопрос заключается в том, какая используется кодировка символов. Ты должен знать что. Сегодня, в 2020 году, рекомендуется использовать UTF8 везде или хотя бы что-то связанное с Unicode.

Но некоторые компьютеры или операционные системы используют другие кодировки символов. Вам необходимо выяснить (возможно, связавшись с человеком, который предоставил вам этот файл), какая кодировка используется, или прочитав документацию, относящуюся к вашей системе.

Если вы уверены, что используется кодировка UTF-8, вы найдете библиотеки для работы с ней. Включая libunistring (см. Также Qt, Glib или POCO и другие, возможно, на github или gitlab).

Имейте в виду, что некоторые нелатинские буквы занимают несколько байтов в кодировке UTF-8. Например, русская буква Ж (U + 0416 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ZHE) кодируется в UTF-8 двумя байтами: 0xD0 0x96, а очень распространенная французская буква é (U + 00E9 СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E С ОСТРЫМ) кодируется в UTF-8 с помощью 0xC3 0xA9

Следовательно, Jūratė требуется 8 байтов. в UTF-8. Так что sizeof("Jūratė"), скорее всего, даст 9 (большинство компиляторов C ++ принимают литеральные строки UTF-8 на x86-64).

См. Также https://home.unicode.org/.

Не забудьте прочитать хорошую книгу по программированию на C ++, а также посмотреть эту веб-сайт справки по C ++ и Как отлаживать небольшие программы . Прочтите документацию вашего компилятора C ++, например GCC или Clang и не путайте его со своей IDE (например, < a href = "https://en.wikipedia.org/wiki/Microsoft_Visual_Studio" rel = "nofollow noreferrer"> Visual Studio или Код Visual Studio). Прочтите также документацию к вашему отладчику (например, GDB).

0
Basile Starynkevitch 15 Июн 2020 в 08:10