关于WritePrivateProfileString写入中文字符的问题

xxsnihao 2015-08-06 02:28:53
	TCHAR szKey[]="Save";
TCHAR szFile[]="config\\4.ini";
WritePrivateProfileString(szKey,TEXT("user"),GameData.user,szFile);
WritePrivateProfileString(szKey,TEXT("jiaose"),GameData.PlayerName,szFile);
WritePrivateProfileString(szKey,TEXT("ip"),GameData.IP,szFile);


GameData.PlayerName 这个数据里 有中文 有数字 有字母 为什么 读取不了呢
以下是读取内容
[Save]
user=123123
jiaose=
ip=222.17.227.88

就jiaose 读取不了 请高手帮忙解答下
...全文
1152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-08-13
  • 打赏
  • 举报
回复
引用 7 楼 SXJIAKE 的回复:
由于 Windows API 的 A、W 两个版本,实际上是 ANSI 和 Unicode (Little-Endian) 两种。经本人测试,ini 文件,Windows 也只是识别这两种。当然,跟你用 A 还是 W 版本的函数无关。如果你用的是 A 版读取 Unicode ini 的韩文肯定无法读取。所以,建议 ini 使用 Unicode 编码,程序中也使用 W 版 GetPrivateProfileStringW 来读取,所以对应的变量也应该使用 WCHAR 字符串。
+对应的字符串常量使用L"..."
「已注销」 2015-08-13
  • 打赏
  • 举报
回复
由于 Windows API 的 A、W 两个版本,实际上是 ANSI 和 Unicode (Little-Endian) 两种。经本人测试,ini 文件,Windows 也只是识别这两种。当然,跟你用 A 还是 W 版本的函数无关。如果你用的是 A 版读取 Unicode ini 的韩文肯定无法读取。所以,建议 ini 使用 Unicode 编码,程序中也使用 W 版 GetPrivateProfileStringW 来读取,所以对应的变量也应该使用 WCHAR 字符串。
赵4老师 2015-08-07
  • 打赏
  • 举报
回复
项目、属性、设置使用多字节字符集。
xxsnihao 2015-08-06
  • 打赏
  • 举报
回复
赵老师 你的这个方法 我试了 还是不行啊
赵4老师 2015-08-06
  • 打赏
  • 举报
回复
	TCHAR szKey[]=_T("Save");
	TCHAR szFile[]=_T("config\\4.ini");
	WritePrivateProfileString(szKey,_T("user"),GameData.user,szFile);
	WritePrivateProfileString(szKey,_T("jiaose"),GameData.PlayerName,szFile);
	WritePrivateProfileString(szKey,_T("ip"),GameData.IP,szFile);
二班的码农 2015-08-06
  • 打赏
  • 举报
回复
找错了,是转换, 不是轮换
二班的码农 2015-08-06
  • 打赏
  • 举报
回复
会不会是字符集的问题,在所有字符常量加上_T()轮换
xxsnihao 2015-08-06
  • 打赏
  • 举报
回复
PlayerName 定义的是 char 类型

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧