VC里的编码问题

void CAlignSentenceDoc::NormalizeCH(wstring& delim)
{

    for(int i = 0; i < delim.size(); i++)
    {
        if(delim[i] == L‘。‘)
            delim[i] = L‘.‘;

        if(delim[i] == L‘,‘)
            delim[i] = L‘,‘;
    }
}

delim是wstring,因此里面的每个字符都是宽的,因此要用L宏做转化。

但是我试过代码写成如下

    wchar_t t = ‘。‘;//这里t是0xa1a3,不是。的unicode编码
    wchar_t t2 = L‘。‘;//这里t是0x3002,是unicode编码

也就是wchar_t 编译器并不会做一个强制转化,不加宏默认都是ascii。

时间: 2024-10-31 14:23:31

VC里的编码问题的相关文章

VMware虚拟机 VC里报告虚拟磁盘丢失的解决方案

中石化某省分公司的信息管理平台,几台VMware虚拟机--ESX SERVER共享一台IBM DS4100存储,大约有40~50组虚拟机,占用1.8TB空间,正常工作中,vc里报告虚拟磁盘丢失,ssh到ESX中执行fdisk -l查看磁盘,发现storage已经没有分区表了.重启所有设备后,ESX SERVER均无法连接到DS4100所在的STORAGE. 我们接到案例后仔细询问当时的管理员但是可用信息不多,但是他们无意间提到曾经在这个存储网络里连接过一台windows 2003服务器,具体情况

Windows下VC++显示UTF-8编码中文

笔者在Windows下使用C++编写程序接收UTF8字符串会发生中文无法正常在console上显示的问题,故特来解决UTF8字符串如何在VC++上正常显示. 1.问题重现,UTF-8编码下的字符串“中文”在Windows下的显示如下图,其中上行为UTF8字符串,下行为GBK字符串: 2.方法:将UTF-8格式的代码变为GBK编码(需要Windows.h头文件) 1 string UTF8ToGBK(string &strUtf8) 2 { 3 string strOutGBK = "&q

图解在VC里使用graphics.h绘图(类似TC)

1 www.easyx.cn 下载 EasyX 库 我下的2014;解压后如下图: 2 根据自己的VC 版本进行安装 3 在控制台画一个圆 #include <graphics.h> // 引用图形库 #include <conio.h> void main() { initgraph(640, 480); // 初始化绘图窗口 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegrap

怎样将myeclipse里默认编码设置成utf-8

需要设置三个位置: [1]需要在  Preferences->general->content types->下角是文件编码,可以自己定义 [2]windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右 侧Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8. [3]Windows----

Ubuntu里字符编码设置

Ubuntu系统在默认的状况下只支持中文UTF-8编码,但是我们写的一些文档,还有java代码编译时采用gbk编码.所以需要修改.步骤如下:  www.2cto.com 第一步:gedit /var/lib/locales/supported.d/local来修改 /var/lib/locales/supported.d/local文件,在文件中添加如下内容: zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN. UTF-8 UTF-8 第二步:sudo dpkg-r

过滤器里设置编码,防止提交的数据不能写入数据库

web.xml <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>com.lyq.util.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-nam

VC里判断系统是不是64bit

不过,理论上来说,也可以用一个int的大小作为参考,判断是32位还是64位.sizeof(int) == 4 //32位系统.sizeof(int) == 8 //64位系统. 也可以使用函数如下: BOOL IsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL bIsWow64 = FALSE; fnIsWow64Pro

VC++源文件编码

目 录 第1章 源代码文件    1 1.1 研究思路    1 1.2 实验结果    3 1.3 #pragma setlocale    4 1.4 /source-charset    5 1.5 使用UTF-8字符串    6 1.5.1 /execution-charset    6 1.5.2 #pragma execution_character_set    7 1.5.3 u8    7 1.5.4 /utf-8和/validate-charset    8 1.6 总结  

Windows文本文件编码

目 录 1 ANSI编码    2 2 UTF16BE编码    2 3 UTF16LE编码    2 4 UTF-8编码    2 5 BOM    3 6 乱码    3 7 总结    5 如下图所示,在记事本里输入"编码",然后另存为的时候,有四种编码: 图1 按下表所示,四种编码存为四个文件: 编 码 文件名 ANSI A.txt Unicode U.txt Unicode big endian UB.txt UTF-8 U8.txt 使用VC++6.0或Visual Stu