zoukankan      html  css  js  c++  java
  • CodeBlocks中使用中文字符问题

        由于移动VC6的代码到CodeBlocks中进行编译,VC6项目中使用UNICODE编译支持,拿到CB下面编译就会出现字符串不符合要求的提示,而且被CB自动改成了UTF-8格式文件,直接出现乱码,后来查了一下网上的说法,一是直接使用 “中文”这种就可以了,二是改成UTF-8编码格式的文件,可以使用记事本将VC6的源码打开,存为UTF-8格式,第三种就是直接在CB中写UTF-8编码的程序,可以把文件格式在菜单Edit->File encoding下面勾选save as BOM和UTF-8选项,源程序中:

    #define UNICODE
    #define _UNICODE
    #include <windows.h>
    #include <tchar.h>//这上面还是和VC6下面方式一样。

    字符串用下面的方式给出,可正常编译。

    TCHAR szClassName[ ] = _T("CodeBlocksWindowsApp");

    TCHAR szTitle[] = _TEXT("中文标题");

    TCHAR msg[] = TEXT("你好!");

    关于BOM其实就是文本文件的格式标识头,前三个字节为0xEF 0xBB 0xBF即为UTF-8编码,使用C语言的文件读取进行判断文本格式时,需要定义为:

    unsigned char BOM[3];

    ....

    fread(BOM, sizeof(BOM), 1, fp);

    读取3个连续的字符。

    练习一下用WinAPI写记事本时可以用得上,准备自己也练习下记事本,主要想实现行号显示和多Tab页风格及双开文档左右或是上下对比用,并添加历史记录功能,添加工具栏,使用了很久的XP记事本,终于觉得非常不满意了,呵呵,思考了一下,基本上这些功能都能实现。

  • 相关阅读:
    递归汉诺塔问题
    递归求数组最大的那个数
    递归
    Overriding the Virtual Mechanism
    Shell中while循环的done 后接一个重定向<
    [转]【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
    vs2013一点事情
    深入理解JS中的变量作用域
    速效救心丸之django post 403
    速效救心丸之read
  • 原文地址:https://www.cnblogs.com/huapox/p/3172686.html
Copyright © 2011-2022 走看看