[问题] UTF-8 to ANSI

楼主: qscgy4 (有点厉害)   2015-06-23 00:24:45
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC10, Windows 7
问题(Question):
我用C++读取网页的内容存成txt档后要做文字分析,
但内容有中文字,要做一些文字比对(用C++的fstream存盘后是UTF-8格式)。
爬了很多 wchar_t 之类的用法,发现都太麻烦了...
后来我发现一件有趣的事,同样的内容另存成ANSI的格式下,
char可以正常运作,显示中文、比对中文都没问题,
因此就想说是不是我存成UTF-8后,
可以用什么方法靠程式把他转为ANSI格式存盘后,在开启来读取 ?
请各位大大教我这个菜逼巴,怎么把UTF-8转为ANSI格式,感恩。
楼主: qscgy4 (有点厉害)   2015-06-23 00:44:00
在网络找到转换的方法,以解决
作者: TeaEEE (爱不趴 不爱趴)   2015-06-23 11:50:00
如果是自己使用还好,若是在别人未使用中文OS系统上就GG了
作者: Killercat (杀人猫™)   2015-06-23 12:09:00
utf8怎么转ANSI @@? 你是想把UTF-8的标点转ANSI吗如果你只是要skip掉UTF-8的字的话 你只要碰到byte的第一个bit是1的 就看里面几个bit是1 跳掉后面几个byte即可 比方说看到1110xxxx 就知道要跳掉自己跟后面两个byte,应该是不用注意endian问题啦....或者单纯看到byte第一个bit是1就跳掉也是可以的if(0x10000000 & targetChar) skipToNext();
作者: LPH66 (-6.2598534e+18f)   2015-06-23 13:29:00
他的"ANSI"应该是本地编码 (就那个记事本的选项)这样的话 Windows 直接叫 WinAPI 比较直接先用 MultiByteToWideChar 转成 wchar_t[] (UTF-16) 后再 WideCharToMultiByte 转成本地编码即可

Links booklink

Contact Us: admin [ a t ] ucptt.com