博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeBlocks中使用中文字符问题
阅读量:6810 次
发布时间:2019-06-26

本文共 815 字,大约阅读时间需要 2 分钟。

    由于移动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记事本,终于觉得非常不满意了,呵呵,思考了一下,基本上这些功能都能实现。

转载于:https://www.cnblogs.com/huapox/archive/2012/03/24/3172686.html

你可能感兴趣的文章
UNP总结 Chapter 11 名字与地址转换
查看>>
使用树莓派和 projectx/os 托管你自己的电子邮件
查看>>
关于nmonanalyser报错“输入超出文件尾”的解决方法
查看>>
Ubuntu 16.04安装idea
查看>>
把SQL Server 错误日志导出为EXCEL 并发送到指定的ftp 或者 共享盘
查看>>
Oracle GoldenGate理论
查看>>
S5pv210裸机实验——SDRAM重定位
查看>>
环环相扣,VR硬件技术突破的春天还有点远
查看>>
Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER 解决方案
查看>>
倾听最真实的声音,英国女歌手举办世界首场AR演唱会
查看>>
分布式系统
查看>>
Navicat标识为灰
查看>>
轻松面试找到理想员工-非官方的面试技术指南
查看>>
千里马大赛落下帷幕!天池众智平台即将升级!
查看>>
oracle 删除用户下对象 脚本生成
查看>>
oc字符串的用法
查看>>
跟小静学CLR via C#(12)-委托Delegate
查看>>
android多线程-AsyncTask之工作原理深入解析(下)
查看>>
Python 文件操作
查看>>
CentOS 5/6 安装 GNOME 或 KDE 桌面
查看>>