字符集无关

<MFC Windows 程序设计>一书中所述:

Unicode程序运行起来比ANIS程序稍快,因为系统不需要进行ANIS字符到Unicode字符之间的转换.(98系统不支持Unicode)

如果您按照如下方式将字符串常量编码:
"Hello"
那么编译器将从ANIS字符组成该字符串.

如果您按照如下方式声明了字符串:
L"Hello"
那么编译器将使用Unicode字符.

但是您使用MFC的_T宏,如下所示:
_T("Hello")
如果定义了预处理程序符号_Unicode,那么编译器将使用Unicode字符,而如果没有定义该预处理符号,那么编译器将使用ANIS符号.
如果定义了_Unicode,TCHAR将求值为:wchar_t,它是一个16位的Unicode字符.如果没有定义则变为普通古老的char型.

时间: 2024-08-18 05:44:43

字符集无关的相关文章

Mysql字符串类数据列类型(参考)

字符串可以用来表示任何一种值,所以它是最基本的类型之一.我们可以用字符串类型来存储图象或 声音之类的二进制数据,也可存储用gzip压缩的数据.下表介绍了各种字符串类型: Table 1.3. 字符串类数据列类型 CHAR[(M)] M字节 M字节 VARCHAR[(M)] M字节 L+1字节 TINYBLOD,TINYTEXT 2^8-1字节 L+1字节 BLOB,TEXT 2^16-1字节 L+2 MEDIUMBLOB,MEDIUMTEXT 2^24-1字节 L+3 LONGBLOB,LONG

再谈java乱码:GBK和UTF-8互转尾部乱码问题分析

一直以为java中任意unicode字符串可以使用任意字符集转为byte[]再转回来只要不抛出异常就不会丢失数据事实证明这是错的. 经过这个实例也明白了为什么 getBytes()需要捕获异常虽然有时候它也没有捕获到异常. 言归正传先看一个实例. 用ISO-8859-1中转UTF-8数据 设想一个场景 用户A有一个UTF-8编码的字节流通过一个接口传递给用户B 用户B并不知道是什么字符集他用ISO-8859-1来接收保存 在一定的处理流程处理后把这个字节流交给用户C或者交还给用户A他们都知道这是

C语言编程中统计输入的行数以及单词个数的方法_C 语言

统计输入的行数 标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束.因此,统计行数等价于统计换行符的个数. #include <stdio.h> /* count lines in input */ main() { int c, nl; nl = 0; while ((c = getchar()) != EOF) if (c == '\n') ++nl; printf("%d\n", nl); } 在该程序中,while 循环语句的循环体是一个 if 语句,它控

[20130610]褆与竖线分隔符.txt

[20130610]褆与竖线分隔符.txt 前几天生产系统系统遇到的一个问题,就是上传数据到医保中心时,总有一条记录总是报传入参数数量不对.传入的内容按照|来分割.我仔细检查发现传入的参数数量正确,数据类型也正确,为什么还是报这个错误.仔细检查才发现问题在这条记录内容上. 我在linux下做一个例子来说明: $ cat aa.txt123|张飞褆test|aaa1 $ cut -f1 -d'|' aa.txt123$ cut -f2 -d'|' aa.txt张飞?$ cut -f3 -d'|'

字符集问题的初步探讨(四)

问题 link: http://www.eygle.com/special/NLS_CHARACTER_SET_04.htm 4. 导入导出及转换   导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用.在导出操作时,非常重要的是客户端的字符集设置,也就是客户端的NLS_LANG设置.NLS_LANG参数由以下部分组成: NLS_LANG=<Language>_<Territory>.<Clients Characterset

java处理字符集-第二部分-文件字符集

前面有一篇文章提及到乱码的产生:http://blog.csdn.net/xieyuooo/article/details/6919007 那么知道主要原因是编码和解码方式不一样,那么有些时候如果我们知道编码方式,那么解码自然很好搞,例如输出的contentType会告诉浏览器我输出的内容是什么编码格式的,否则浏览器会才用一个当前默认的字符集编码来处理:本文要将一些java如何处理没有带正常协议头部的字符集应当如何来处理. 这里就说的是文件字符集,在了解字符集之前,回到上一篇文章说到默认字符集,

查看mysql字符集及修改表结构--表字符集,字段字符集

MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的字符集.当前安装的 MySQL 所支持的字符集等. 一.查看 MySQL 数据库服务器和数据库字符集. mysql> show variables like '%char%';+--------------------------+----------------------------------

探索Oracle之 EXP/IMP过程中的字符集问题

1. 问题描述:        数据库之间的数据迁移是一个很常见的作业,EXP/IMP工具是一个常用的数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用.但在实际操作过程中,涉及到源数据库,客户端,目标数据库三方面的字符集问题.操作人员对三者之间的字符集转换过程不了解,而冒然使用EXP/IMP命令,往往在迁移过程中报错终止,或是在没有报错的情况下成功导入,但其背后却存在隐患,在查询时经常显示乱码.   2.解决方法        2.1 源端数据库(1)→EXP客户端(

Oracle字符集与字符类型存储空间占用

数据库的全球化特性是数据库发展的必然结果,位于不同地区.不同国家.不用语言而使用同一数据库越来越普遍.对于不同国家或地区数据库通常会使用不同的字符集,而全球性企业也会选择使用统一编码的数据库字符集.Oracle数据库统一字符集为AL32UTF8,可以参考:Oracle 全球化特性与字符集.对于不同的字符集容易出现转换乱码,同时不同字符集也影响存储空间的占用. 如本文下面的描述. 一.字符集环境变量对数据库的影响 [oracle@java_1 ~]$ env |grep LANG LANG=zh_