ansi编码

UNICODE与ANSI的区别

那年仲夏 提交于 2020-01-26 00:32:27
什么是ANSI,什么又是UNICODE呢?其实这是两种不同的编码方式标准,ANSI中的字符采用8bit,而UNICODE中的字符采用16bit。(对于字符来说ANSI以单字节存放英文字符,以双字节存放中文等字符,而Unicode下,英文和中文的字符都以双字节存放)Unicode码也是一种国际标准编码,采用二个字节编码,与ANSI码不兼容。目前,在网络、Windows系统和很多大型软件中得到应用。8bit的ANSI编码只能表示256种字符,表示26个英文字母是绰绰有余的,但是表示汉字,韩国语等有着成千上万个字符的非西方字符肯定就不够了,正是如此才引入了UNICODE标准。 在软件开发中,特别是使用C语言的一些有关字符串处理的函数,ANSI和UNICODE是区分是用的,那么ANSI类型的字符和UNICODE类型的字符如何定义,如何使用呢?ANSI和UNICODE又如何转换呢? 一.定义部分: ANSI:char str[1024]; 可用字符串处理函数:strcpy( ), strcat( ), strlen( )等等。 UNICODE:wchar_t str[1024];可用字符串处理函数 二.可用函数: ANSI:即char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。 UNICODE:即wchar_t 可用字符串处理函数

字符、字节和编码

隐身守侯 提交于 2020-01-22 01:57:48
  摘要: 介绍了字符与编码的发展过程,相关概念。举例Java实际应用中,编码的实现方法。最后,讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的方法。 1.编码问题的由来及相关概念 1.1字符与编码的发展    从计算机对多国语言的支持角度看,大致可以分为三个阶段: 系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示 英文DOS 阶段二 ANSI编码(本地化) 为使计算机支持更多语言,通常使用0x80~0xFF范围的2个字节来表示1个字符。比如:汉字‘中’在中文操作系统中,使用[0x06,0xD0]这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了GB2312、BIG5、JIS等各自编码标准。这些使用2个字节来代表一个字节来代表一个字符的各种汉字延伸编码方式,成为 ANSI编码 。在简单中文系统下,ASNI编码代表GB2312编码,在日文操作系统下,ANSI编码代表JIS编码。 不同ANSI编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段ANSI编码的文本中。 中文DOS,中文Windows95/98,日文Windows95/98 阶段三 UNICODE(国际化) 为了使国际间信息交流更加方便,国际组织制定了UNICODE字符集

ANSI编码方式转化为UTF-8方式

耗尽温柔 提交于 2019-12-18 03:43:20
说明: 记事本txt有四种编码方式,分别为:UTF-8、ANSI、Unicode和Unicode big endian,当进行写操作,创建的txt编码格式,与写入汉字的编码方式相同;如果写入的汉字是不同的编码方式,此时创建的txt中,会出现乱码,所以需要把汉字转化为同一编码方式。 本文主要介绍:把汉字编码方式,由ANSI方式转化为UTF-8方式: 一、ANSI转化为UTF-8程序: [cpp] view plain copy print ? CString ToUTF8( const wchar_t * buffer, int len) //返回类型为CString { int size = ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, NULL, 0, NULL, NULL); if (size == 0) return "" ; std::string newbuffer; newbuffer.resize(size); ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, const_cast < char *>(newbuffer.c_str()), size, NULL, NULL); //如需返回string类型,直接 return newbuffer TCHAR outstr[64

字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码

让人想犯罪 __ 提交于 2019-12-16 14:39:51
http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1.1 字符与编码的发展 从计算机对多国语言的支持角度看,大致可以分为三个阶段:   系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不能够在计算机上存储和显示。 英文 DOS 阶段二 ANSI编码 (本地化) 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码 。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码 的文本中。 中文 DOS,中文 Windows 95/98,日文 Windows 95/98 阶段三 UNICODE (国际化) 为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集 ,为各种语言中的每一个字符设定了统一并且唯一的数字编号

字符串和数字之间的转换(Unicode)

旧城冷巷雨未停 提交于 2019-12-16 13:09:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 Unicode编码的字符串转换为数字类型 CString str; str = _T("1234"); int i = _ttoi(str); float f = _tstof(str); 2 数字转换为wchar_t wchar_t c[10]; int num = 100; _itow_s(num,c,10,10进制); wstring str(c); 3 wstring 转换为int wstring str; _wtoi(str.c_str); 那么究竟什么是Unicode?如何编程呢? UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。 UNICODE编译设置: C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE 在ProjectSetting/link/output 中设置Entry为wWinMainCRTStartup 反之为MBCS(ANSI)编译。 Unicode :宽字节字符集 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数? 可以调用Microsoft Visual C++的运行期库包含函数

ANSI编码和Unicode编码的不同-chaijunkun-CSDN

别说谁变了你拦得住时间么 提交于 2019-12-09 10:32:06
ANSI编码 最常见的应用就是在Windows当中的记事本程序中,当新建一个记事本,默认的保存编码格式就是ANSI,ANSI应该算是一种压缩编码了,当遇到标准的 ASCII字符 时,采用单字节表示,当遇到非标准的ASCII字符(如中文)时,采用双字节表示。 Unicode编码 标准已在近年来的多种新科技当中被加以采用,包含了可扩展置标语言(XML)、Java程序语言、以及最新的操作系统中。 下面用实验的方法来进行研究这两者之间的差别: 首先要准备的软件有UltraEdit,用于对文本进行比较;其次用于分析 网络字节序 的辅助网站 http://bm.kdd.cc/index.asp 步入正题,在一个空白的文件夹下创建一个记事本文档“新建 文本文档.txt”,在里面输入“宋体ABC(回车)”(不包含引号,最后要在ABC后输入一个回车),保存并关闭该文档,将此文件选中之后直接复制、粘 贴,在相同的文件夹下就产生了“复件 新建 文本文档.txt”,再次打开“新建 文本文档.txt”,选择菜单中的“文件”->“另存为”,在另存为对话框中,最下面有 “编码” ,选择Unicode。保存,选择替换。 然 后打开UltraEdit,在菜单中选择“文件”->“比较文件”(或直接按快捷键Alt+F11),选择第一个要比较的文件为“新建 文本文档.txt”,选择第二个要比较的文件为“复件 新建

ANSI格式编码、UTF-8格式编码和UTF-8无BOM格式编码三种不同编码趣味探讨

℡╲_俬逩灬. 提交于 2019-12-07 21:44:06
在上一篇文中,涉及到三种不同编码方式,ANSI格式编码、UTF-8格式编码以及UTF-8无BOM格式编码,这里我对三者进行 简要的探讨。 Windows:默认为 ANSI,记事本程序另存为处,可以设置其他编码格式; Ubuntu:默认为 UTF-8 1)ANSI ANSI 编码表示英文字符时用一个字节,表示中文用两个或四个字节 —— 这带来了存储空间的减少,但却带来的格式的 不统一和混乱。 ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x79 范围的 1 个字节来表示 1 个英文字符。 超出此范围的使用 0x80~0xFFFF来编码,即扩展的 ASCII 编码。为使计算机支持更多语言,通常使用 0x80~0xFFFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。 这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。 在简体中文 Windows 操作系统中,ANSI 编码代表 GBK 编码; 在繁体中文 Windows 操作系统中,ANSI 编码代表 Big5; 在日文 Windows 操作系统中,ANSI 编码代表 Shift

ANSI编码方式转化为UTF-8方式

旧街凉风 提交于 2019-12-07 21:38:19
说明: 记事本txt有四种编码方式,分别为:UTF-8、ANSI、Unicode和Unicode big endian,当进行写操作,创建的txt编码格式,与写入汉字的编码方式相同;如果写入的汉字是不同的编码方式,此时创建的txt中,会出现乱码,所以需要把汉字转化为同一编码方式。 本文主要介绍:把汉字编码方式,由ANSI方式转化为UTF-8方式: 一、ANSI转化为UTF-8程序: CString ToUTF8(const wchar_t* buffer, int len) //返回类型为CString { int size = ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, NULL, 0, NULL, NULL); if (size == 0) return ""; std::string newbuffer; newbuffer.resize(size); ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, const_cast<char*>(newbuffer.c_str()), size, NULL, NULL); //如需返回string类型,直接 return newbuffer TCHAR outstr[64]; //string 转化为CString返回 CString

字符编码--第3章 字符的存储--ANSI编码

ぃ、小莉子 提交于 2019-12-07 14:31:24
第11节 ANSI编码 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 ANSI编码表示英文字符时用一个字节,表示中文用两个或四个字节。 第12节 全角和半角 全角(大陆、日本、韩国称全角;台湾、香港称全形;也称全宽或全码)和半角(大陆、日本、韩国称半角;台湾、香港称半形;也称半宽或半码),是计算机中,中、日、韩文的CJKV字符的显示格式。 传统上,英语或拉丁字母语言使用的电脑系统,每一个字母或符号,都是使用一字节的空间(一字节由8位元组成,共256个编码空间)来储存;而汉语、日语及韩语文字,由于数量大大超过256个

"const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容(即_T、TEXT("")和L"" 的问题)

╄→гoц情女王★ 提交于 2019-12-05 18:37:41
基本概念 再解决问题之前要先弄懂一些概念。 WIndows里面有两种字符编码方式,分别为ANSI和UNICODE编码。 什么是ANSI,什么又是UNICODE呢? ANSI字符集,它们正式的名称应该是多字节字符系统(Multi-Byte Chactacter System,即MBCS)。Unicode码也是一种国际标准编码,采用二个字节编码,与ANSI码不兼容。 ANSI (使用”“)中的字符采用8bit,而UNICODE (使用L”“)中的字符采用16bit。对于字符来说ANSI以单字节存放英文字符,以双字节存放中文等字符,而Unicode,英文和中文的字符都以双字节存放。 8bit的ANSI编码只能表示256种字符,表示26个英文字母是绰绰有余的,但是表示汉字,韩国语等有着成千上万个字符的非西方字符肯定就不够了,正是如此才引入了UNICODE标准。 那么ANSI类型的字符和UNICODE类型的字符在Windows中如何定义,如何使用呢? 定义使用 因为Windows支持两种字符串,这样对应的就有了两套字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串 ANSI:即char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等 以str打头的函数。 UNICODE:即wchar_t 可用字符串处理函数:wcscat()