вот программа: http://codepad.org/eyxunHot
Кодировка файла - UTF-8.Извлечь текст из wifstream независимо от его кодировки
У меня есть текстовый файл с именем «config.ini» со следующим словом в нем: ➑ball
Если я использую блокнот, чтобы сохранить файл в кодировке «UTF-8», а затем запустить программу, согласно отладчику значение eight_ball является: ï »¿âball
Если я использую блокнот, чтобы сохранить файл с кодировкой„Unicode“, а затем запустить программу, в соответствии с отладчиком значение eight_ball является: Yth» b
Если я использую блокнот для сохранения файла с помощью «Unicode big endian ", затем запустите программу, в соответствии с отладчиком значение eight_ball: þÿ '
Во всех этих случаях результат неверен. Также кодировка ANSI не поддерживает символ.. Как я могу убедиться, что слово ➑ball будет извлечено из файла, когда я перейду config_file >> eight_ball, независимо от кодировки? Я хочу, чтобы выход этой программы был «Программа правильной» независимо от кодировки config.ini.
Обратите внимание, что ваша проблема принципиально неразрешима. Если я сохраню файл Latin-1 с содержимым «ï» ¿âball »(8 действительных символов), нет способа отличить его от файла UTF-8, содержащего ➑ball (5 действительных символов). Они равны 8 байтам. – MSalters