`
isiqi
  • 浏览: 16494808 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

MBCS 和Unicode 转换

 
阅读更多

UNICODE 與 MBCS 轉換2009年04月15日 星期三 09:38MBCS (multi bytes char system) 是一般在用電腦時所使用字型系統
例如繁體中文(BIG5) 簡體中文(GBK) 這些都是MBCS
這些字元的編碼與unicode編碼的轉換可以使用系統所提供的function
unicode 轉 MBCS可用 WideCharToMultiByte
使用範例如下

wchar_t *wstr = L"unicode轉big5";
char mbcsbuf[32];
WideCharToMultiByte(950,0,wstr,-1,mbcsbuf,32,NULL,NULL);
上面範例中 wstr 放的是一個 unicode字串 我們要將他轉成 BIG5 編碼放在mbcsbuf 中
WideCharToMultiByte參數中 第一個是 code page ,950代表繁體中文BIG5
第二個為轉換參數 不用設定
第三個為unicode字串
第四個為unicode字元數 傳入-1的話便會自己偵測長度
第五個為輸出buffer
第六個為輸出buffer 大小 (單位:byte)
第七第八個參數都可以設為NULL
執行完之後 轉換好的字串便會放在mbcsbuf中


MBCS 轉 unicode可用 MultiByteToWideChar
使用範例如下
char *str = "big5轉unicode";
wchar_t wcbuf[32];
WideCharToMultiByte(950,0,str,-1,wcbuf,32);
str中放的是 BIG5 字串 我們要將他轉成unicode並放在wcbuf中
第一個參數為code page, 950代表繁體中文
第二個為轉換參數 不用設定
第三個為要轉換的字串
第四個為字串長度 傳入-1的話便會自己偵測長度
第五個為輸出buffer 這個buffer為 wide char格式
第六個為輸出buffer 大小 也就是這個buffer可以放入幾個wide char
執行為之後 unicode字串便會放在wcbuf中

分享到:
评论

相关推荐

    升级VC6源码mbcs转unicode

    本话题主要涉及的是将一个使用Visual C++ 6(VC6)开发的源码项目升级到更高版本,如VC2002,并且处理MBCS(多字节字符集)到UNICODE(宽字符集)的转换。以下是对这个过程的详细解释: 1. **VC6与VC2002的差异**:...

    Unicode MBCS字符转换程序.rar

    文件操作是此项目的核心部分,涉及到读取、解析、转换和写入不同编码格式的文件。在C++中,这通常涉及使用fstream类来打开和读写文件,以及使用特定的库函数或自定义逻辑来处理编码转换。 "可执行文件"指的是编译后...

    MBCS编码和UNICODE编码的相互转换.docx

    在编程领域,字符编码是处理...总的来说,MBCS和UNICODE编码之间的转换涉及了类型转换、字符串函数的替换、宏定义的使用以及API调用等多个方面。正确理解和应用这些转换规则,能够确保程序在不同编码环境中正常工作。

    MBCS编码和UNICODE编码的相互转换.pdf

    使用这些转换方法和技巧,开发者可以在VC6环境下编写兼容MBCS和Unicode的程序,确保在不同编码环境下的正确运行。然而,随着开发工具的更新,如VC7、VC8等更现代的编译器,它们通常默认支持Unicode,并提供了更好的...

    易语言Ansi与Unicode转换源码.7z

    易语言中的Ansi与Unicode转换源码通常是为了处理不同编码间的转换问题。例如,当你从网络获取数据或者读取不同编码格式的文件时,可能需要将Ansi编码的数据转换成Unicode,以便正确地显示和处理多语言字符。反之,有...

    C++各种编码转换 Unicode UTF8

    #### 3.1 MBCS到Unicode的转换 这一过程与第1部分相似,同样是使用`MultiByteToWideChar`函数完成转换。唯一的区别在于结果保存在`wchar_t`类型的向量中。 ### 4. Unicode到多字节编码的转换 最后,这部分介绍如何...

    vs2008-Unicode字符集下CString与char_互转换

    在VS2008中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多...这里总结了在VS2008环境中 Unicode字符集下CString和char *之间相互转换的几种方法,其实也就是Unicode字符集与MBCS字符集转换。

    多字节与UTF-8、Unicode之间的转换

    本篇文章主要探讨的是多字节(MBCS)编码与UTF-8、Unicode编码之间的转换方法,并深入分析了给定代码片段中的六个函数实现细节。 #### 一、基础知识概述 1. **多字节字符集(MBCS)**:多字节字符集是指非固定长度...

    Unicode与ANSI字符串之间的转换

    Unicode 和 ANSI 字符串之间的转换在跨平台和国际化应用程序开发中非常重要。通过 Windows API 函数 `WideCharToMultiByte`,我们可以方便地完成这一任务。需要注意的是,在进行转换时,必须正确设置代码页参数以及...

    MFC字符转换

    MFC是微软提供的一种C++类库,它简化了Windows应用程序的开发,但同时也涉及到多字节字符集(MBCS)和Unicode之间的转换。本文将深入探讨MFC下的字符转换问题,以及如何解决这些问题。 首先,我们要理解多字节字符集...

    [原创]Unicode2ANSI

    用户可能需要指定输入目录(包含Unicode编码的文件)和输出目录(存放转换后的ANSI文件)。在运行这样的工具前,应确保了解其工作原理,并备份原始数据,以防数据丢失或损坏。 转换过程通常包括读取Unicode文件,...

    MFC下的字符转换

    - MFC 提供了一系列宏,如 A2T、T2A、A2W、W2A、T2W 和 W2T,用于在 ASCII、Unicode 和 MBCS 之间进行转换。 - 宏如 _T() 和 L"" 用于创建与当前字符集兼容的字符串。 5. **CFile 和 CArchive 类** - 当读写文件...

    Unicode下CString与char*之间的转换(vs2008绝对实用)

    在Unicode环境下,使用宽字符(WCHAR)和相关的函数可以更好地处理多语言环境,但与旧的MBCS代码交互时需要进行转换。了解并熟练掌握这些转换方法对于在不同版本的Visual Studio中编写兼容的代码至关重要。

    vc6,mfc下设置UNICODE

    首先,了解Unicode和_MBCS的区别是必要的。Unicode是一种国际化的字符编码标准,它可以表示世界上几乎所有的字符,包括汉字、希腊字母、希伯来字母等。相反,_MBCS(多字节字符集)是针对ASCII字符集的扩展,主要...

    VC下Unicode编程文档.docx

    `WideCharToMultiByte`和`MultiByteToWideChar`是两个关键的API函数,用于在Unicode字符串和多字节字符集(MBCS)字符串之间进行转换。`WideCharToMultiByte`将Unicode字符串转换为特定的MBCS编码,如GBK或Shift-JIS...

    VC++的Unicode编程

    3. **预处理器宏**: VC++通过预处理器宏`_UNICODE`和`_MBCS`来区分Unicode和ANSI代码。当你定义了`_UNICODE`时,所有标准库函数如`printf`会映射到宽字符版本`wprintf`,`TCHAR`类型会变成`wchar_t`。如果`_MBCS`被...

    最新unicode点阵字库生成工具(fontmaker)

    增加了一个字符串mbcs2unicode(内码转统一码)的功能。 (支持转:U16-LE, U16-BE, UTF8) V1.03 (20110705) 1. 修改了 Example 中点阵字库解析源码,更加便于移植。(基本做到只需修改font_file.c 即可) 2. 修改...

    在C和C++中使用Unicode

    因此,如果应用程序一开始就使用Unicode,可以显著减少字符转换的时间和内存消耗。 - 许多现代编程语言(如Java和.NET)内置的字符串类型默认使用Unicode编码,这进一步增强了Unicode的普及率和适用性。 2. **国际...

    Unicode编程规范

    附表中通常会列出常用的Unicode转换和处理函数,如`Create Wide Char From Multi Byte`、`Create Multi Byte Char From Wide Char`等,以便开发者参考和使用。 综上所述,Unicode编程规范是确保软件能正确处理多种...

    CSpreadSheet类在(Unicode)下的使用

    在C++编程中,Unicode支持通常通过两种方式实现:宽字符(wchar_t)和多字节字符集(MBCS,即MBCS,Multi-Byte Character Set)。CSpreadSheet类的原始版本可能只支持ASCII或MBCS,不兼容Unicode,这可能会导致在...

Global site tag (gtag.js) - Google Analytics