У меня есть несколько файлов, которые содержат различные строки на разных письменных языках. Файлы, с которыми я работаю, имеют формат .inf, который несколько похож на файлы .ini.
Я ввожу текст из этих файлов в анализатор, который рассматривает символ [
как начало «категории». Поэтому важно, чтобы этот символ случайно не появлялся в последовательностях строк, иначе синтаксический анализ не удастся, поскольку он интерпретирует их как «управляющие символы».
Например, эта строка содержит некоторые японские надписи:
iANSProtocol_HELP="�C���e��(R) �A�h�o���X�g�E�l�b�g���[�N�E�T�[�r�X Protocol �̓`�[���������щ��z LAN �Ȃǂ̍��x�@�\�Ɏg�����܂��B"
DISKNAME ="�C���e��(R) �A�h�o���X�g�E�l�b�g���[�N�E�T�[�r�X CD-ROM �܂��̓t���b�s�[�f�B�X�N"
В моей кодировке UTF-8 по умолчанию для текстовых редакторов (Atom) это дает мне мусорный текст, который не будет проблемой, однако символ 0x5B
интерпретируется как [
. Что приводит к сбою синтаксического анализатора, поскольку предполагается, что это сигнализирует о начале новой категории.
Если я изменю кодировку на японский (CP 932), эти символы будут правильно интерпретироваться как:
iANSProtocol_HELP="インテル(R) アドバンスト・ネットワーク・サービス Protocol はチーム化および仮想 LAN などの高度機能に使われます。"
DISKNAME ="インテル(R) アドバンスト・ネットワーク・サービス CD-ROM またはフロッピーディスク"
Конечно, я не могу закодировать каждый файл на японском, потому что он может содержать китайский или другие языки, которые будут написаны неправильно.
Как лучше всего действовать в этой ситуации? Должен ли я редактировать код парсера, чтобы экранировать символы внутри строковых литералов? Существуют ли какие-либо специальные типы кодирования, которые позволили бы мне видеть все специальные символы и языки?
Спасибо