MFC unicode问题 有一个俄文的txt,编码是ANSI的。现在我想把内容读出来显示在编辑框中。自己试了一些方法,可就是不能正确显示。哪位好心人指点一二,感激不尽! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想办法转换成 UNICODE 格式,然后就可以显示了。 1、要知道俄文的编码页是多少2、转成unicode3、你的项目最好是unicode的。 转成UNICODE最容易,应要用ANSI也行,存储全用CStringA,或者char *,最后用CString构造函数转成CString显示,或者用函数直接传进text框,我做加解密算法,处理多国语言文字就是这样的 MultiByteToWideChar、WideCharToMultiByte就这两函数倒来倒去。ANSI、UNICODE、UTF-8 文件编码转换 http://blog.csdn.net/DavidHsing/archive/2008/11/17/3317841.aspx 我也是要处理多国语言,不只是俄文。能再具体点说说吗,给个大概的思路。我的工程是UNICODE的,用ReadFile读文件进缓存,然后用MultiByteToWideChar,再用SetDlgItemText试图在TEXT框里,但是总是不能正确显示。 通用 MFC 数据类型 映射到 ASCII 映射到 UNICODE 注释 _TCHAR char wchar_t _TCHAR 是一个映射宏,当定义 UNICODE 时,该数据类型映射到 wchar_t,如果没有定义 UNICODE,那么它映射到 char。 _T 或 _TEXT char 常量字符串 wchar_t 常量字符串 功能与宏相同,在 ASCII 模式下,它们被忽略,也就是说被预处理器删除掉,但 如果定义了UNICODE, 则它们会将常量字符串转换成等价的 UNICODE 。 LPTSTR char*, LPSTR(Win32) wchar_t* 可移植的32位字符串指针。它将字符类型映射到工程设置的类型。 LPCTSTR const char*, LPCSTR(Win32) const wchar_t* 可移植的32位常量字符串指针。它将字符类型常量映射到工程设置的类型。 就是转来转去, multibyte, widechar... 能详细说一下吗?我就是用MultiByteToWideChar来转,但是没有成功,无法正确显示 你读入的字符是什么字符阿?这要进行确认!另外,你的工程是unicode工程,这个时候你读入的要是unicode吗的话就不用用MultiByteToWideChar了。用了反而会出错。你不能说出可能是你因为unicode的开头位为0。你找夏是不是有SetDlgItemTextW函数。这个函数可以输出unicode字符。SetDlgItemText这个函数如果你的工程是unicode工程的话也可以输出unicode字符的。但是好像你要导入对应的字符集! 关于读入的字符“俄文的txt,编码是ANSI的。 ”,读入的是ANSI字符。不能显示有可能是你说的字符集的问题,可是我不会弄字符库,可以详细说一下怎么导入吗?谢谢! 用记事本打开,另存为Unicode,再读就行了,哈哈! 谁知道怎么取系统的CODEPAGE? 查看当前系统的local ID。GetSystemDefaultLCID() 谢谢!我用的GetLocaleInfo也取到了。 ImmInstallIME 怎么取消SetTimer函数已经发出来的WM_TIMER消息 抱歉!该用户已被禁用,如果您有任何问题,可以与管理员联系 Lingoes 的google在线翻译是如何实现的?? 怎么 建立 座标轴? 指针问题??在线! 一个简单的问题,关于DAO的,请高手赐教。 第一次为一个控件喊救命 如何从dll中得到其中包括的类信息? 请问如何在网页向activex里传数据? 如何检测桌面有对话框出现? 没有输出?
2、转成unicode
3、你的项目最好是unicode的。
就这两函数倒来倒去。ANSI、UNICODE、UTF-8 文件编码转换
http://blog.csdn.net/DavidHsing/archive/2008/11/17/3317841.aspx
我也是要处理多国语言,不只是俄文。能再具体点说说吗,给个大概的思路。我的工程是UNICODE的,用ReadFile读文件进缓存,然后用MultiByteToWideChar,再用SetDlgItemText试图在TEXT框里,但是总是不能正确显示。
_T 或 _TEXT char 常量字符串 wchar_t 常量字符串 功能与宏相同,在 ASCII 模式下,它们被忽略,也就是说被预处理器删除掉,但 如果定义了UNICODE, 则它们会将常量字符串转换成等价的 UNICODE 。
LPTSTR char*, LPSTR(Win32) wchar_t* 可移植的32位字符串指针。它将字符类型映射到工程设置的类型。
LPCTSTR const char*, LPCSTR(Win32) const wchar_t* 可移植的32位常量字符串指针。它将字符类型常量映射到工程设置的类型。
能详细说一下吗?我就是用MultiByteToWideChar来转,但是没有成功,无法正确显示
你读入的字符是什么字符阿?这要进行确认!
另外,你的工程是unicode工程,这个时候你读入的要是unicode吗的话就不用用MultiByteToWideChar了。用了反而会出错。
你不能说出可能是你因为unicode的开头位为0。
你找夏是不是有SetDlgItemTextW函数。这个函数可以输出unicode字符。SetDlgItemText这个函数如果你的工程是unicode工程的话也可以输出unicode字符的。
但是好像你要导入对应的字符集!
关于读入的字符“俄文的txt,编码是ANSI的。 ”,读入的是ANSI字符。不能显示有可能是你说的字符集的问题,可是我不会弄字符库,可以详细说一下怎么导入吗?
谢谢!
我用的GetLocaleInfo也取到了。