【问题标题】:Widechar sorting and loading from fileWidechar 从文件中排序和加载
【发布时间】:2012-01-17 19:55:35
【问题描述】:

当我需要从文件中加载行然后按正确的顺序对它们进行排序时,我目前正在尝试解决问题。

如果我手动将字母分配给 wint_t 数组,然后对它们进行排序,一切都可以使用任何编码 http://pastebin.com/85eycH15。

但是,如果我从文件中读取相同的字母,然后尝试对它们进行排序,则它仅适用于一种编码 (cs_CZ.utf8),而其余的则无法正确读取字母,或者只是跳过它们@ 987654322@.

我非常感谢任何帮助。

【问题讨论】:

  • 文件使用哪种编码?注意:我建议不要进行这种排序。 IE。排序ÆØÅ = {198, 216, 197},不会对Danish 进行正确排序。

标签: c setlocale widechar


【解决方案1】:

我假设您获得预期结果的唯一编码是用于您的数据文件的编码。用另一种编码重新编码数据文件,您将获得新编码而不是其他编码的预期结果。

【讨论】:

  • APProgrammer:谢谢,我已经更改了我想要排序的文件的编码,现在在字母表的开头有轻微的差异,但我会处理它。 @Mats:在 keyList 中,我没有直接使用捷克字母表中的字母,而是使用 Unicode 表中的 \uXXXX。编辑:另一方面,是否可以检查已打开文件的编码是否与 setlocale 设置的编码手动同步?还是最终手动设置文件的编码?
  • 有几种猜测方法,有时都猜错了。如果您可以事先减少选择显然会更好(例如,如果您知道它是 ASCII、ISO-8859-2 或 UTF-8,您可以猜对)。在档案中搜索类似的问题。
猜你喜欢
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
相关资源
最近更新 更多