当我用"ñ"字符循环访问字符串时出现奇怪的结果
Weird results when I iterate through string with "ñ" char
我有一串字符,其中一个可能的字符是字母"ñ"。我的问题是,当我尝试修改字符串或遍历字符串时,我的字符串似乎以一种奇怪的方式运行。例如,如果我有代码:
std::ifstream infile (argv[1]);
std::string texto_crudo((std::istreambuf_iterator<char>(infile)), std::istreambuf_iterator<char>());
for (int i = 0; i<texto_crudo.length(); i++){
if(es_enie(texto_crudo[i])) {
texto_crudo[i] = '$';
}
}
其中,如果 texto_crudo[i] = ñ,则返回 true,则es_enie返回 true。似乎在 ñ 所在的单元格中,它的行为好像它有两个值而不是一个值。
我设法找到了解决我的确切问题的方法。正如一些程序员所评论的那样,这是因为我的文本是 UTF-8,我需要将其转换为 iso-8859-1 以便能够正确使用"ñ"。 将字符串从 UTF-8 转换为 ISO-8859-1
相关文章:
- 尝试将字符串/字符转换为整数会产生意外结果
- 使用 sprintf 和 %g 将双精度转换为字符串的意外结果
- 当我用"ñ"字符循环访问字符串时出现奇怪的结果
- 将字符串强制转换为GUID并不能得到正确的结果
- C++:比较运算符>和字符串文本的意外结果
- 字符串 erase() 函数为类似的调用给出不同的结果
- 提升精神:将结果复制到字符串向量中
- 硬编码字符串与强制转换为 PUCHAR 并打印到控制台时从控制台读取的字符串的结果不同
- 对于字符串中的每个字符都会给出错误的结果
- C++ 字符串的排列,输出的结果小于或等于字符串的长度
- 尝试以随机字符(长读取)打印字符串返回结果
- 访问字符串::c_str()的结果时出现瓦尔格林德内存访问错误
- *char数组到字符串(两次运行代码和两个不同的结果)
- 在尝试提交作业警告时,我一直在警告:与未指定行为的字符串字面结果比较[-WADDRESS]
- 如何使用字符串和整数获取汽车类的整数结果
- 将词法强制转换双倍提升为字符串,给出无效结果
- 如何在字符串中的 时匹配结果
- 我如何在众多字符串中选择一个并显示所有可能的结果
- RapidJSON 在转换为字符串时产生不一致的结果
- 没有得到预期的结果字符串连接