2013-03-07 398 views
0

我有一个带有立陶宛符号的文本文件,但它不会正确读取它。相反的Z我得到这个C++ fstream读取utf-8字符集

设置地区没有工作,要么

setlocale(LC_ALL, "Lithuanian");

我缺少什么?

+0

你怎么知道你得到一个错误的符号? – 2013-03-07 12:11:11

+4

*从来没有*使用视觉检查来诊断这种事情。它只会告诉你“某些事物”是错误的。查看输入中的实际字节以及读取的字节。 – 2013-03-07 12:12:46

+0

好吧,我稍后在代码中比较它们,并且有一堆错误。所以我试图输出它,是的..我得到这些符号。 – RnD 2013-03-07 12:14:10

回答

1

定义区域"Lithuanian"的方式是什么?特别是,它定义了什么 编码使用?根据这一点,您也可以使用 指定区域设置中的编码。像 "Lithuanian.UTF-8",或许,或者 "Lithuanian_Lithuania.UTF-8"。在Windows下,您可能有 使用"65001"而不是"UTF-8"。 (对于 常用的语法语言环境名称是 language_location.encoding。 现代窗户正逐步向POSIX语言环境的名称, 在语言和地区使用在ISO 639-1和ISO 3166-1代码 ,但根据规定在你的版本, 您可能需要使用旧的,更长的名称和代码页, 而不是编码。)