ReadString在UNICODE下中文乱码的解决办法(CHS)

来源:互联网 发布:宁波楼盘每日成交数据 编辑:程序博客网 时间:2024/04/28 05:49

用CStdioFile类中的ReadString()方法可以从文件中读取一行,但是在Unicode下,读取的内容有误,同时也无法将中文利用WriteString()写入文件。原因就在于读取文件时是按照 ascii 方式读取的,而直接设定字符串时,是按照unicode 方式读取的。

若使得读取文件时按照 Unicode 方式读取,则需要添加:

setlocale( LC_CTYPE, "chs" ); 其对应的头文件为 <locale.h>


配置地域化信息函数

#include <locale.h>

char *setlocale (int category, const char * locale);

函数种类: 操作系统与环境
内容说明:
本函数用来配置地域的信息,设置当前程序使用的本地化信息。参数 category 有下列的选择:
LC_ALL 包括下面的全部选项都要。 LC_COLLATE 配置字符串比较,PHP 目前尚未实作出来本项。 LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。 LC_MONETARY 配置金融货币,PHP 目前尚未实作。 LC_NUMERIC 配置小数点后的位数。 LC_TIME 配置时间日期格式,与 strftime() 合用。 而参数 locale 若是空字符串 "",则会使用系统环境变量的 locale 。若 locale 为零(NULL),则不会改变地域化配置,返回当前的地域值,若系统尚未实作则返回 false。


返回相应设置的地域化信息。字符串可能分配在静态存储区。









 


0 0
原创粉丝点击