Skip to content
/ GB18030 Public

中文编码字符集GB18030-2022规范文档、代码实现。

License

Notifications You must be signed in to change notification settings

xuges/GB18030

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GB18030 中文编码字符集

说明

GB18030是中华人民共和国《中文编码字符集》国家标准,最新版本为GB18030-2022。 本项目收录了GB18030-2022标准规范(PDF)、GB18030-2022编码到UCS编码转换表等文档,同时还有编程语言实现,可方便的处理、转换GB18030-2022字符串。

用法

C++语言:

//将src/cpp/GbString.hpp头文件加入包含目录,GbString.cpp和GbMapping.cpp加入构建目录。
#include "GbString.hpp"

int main()
{
    using namespace std;
    using namespace gb18030::v2022;

    // Unicode转GB18030
	GbString s = GbString::fromUnicode(U"中国中文");
	
	// 获取字符串长度
	cout << "GB string length: " << dec << s.length() << "\n";

	// 获取GB18030字符
	cout << "GB string[0] bytes: ";
	for (size_t i = 0; i < s[0].size(); ++i)
		cout << hex << (int)s[0].toBytes()[i];
	cout << "\n";

	// 获取对应Unicode字符值
	cout << "GB string[0] to Unicode: " << hex << s[0].toUnicode() << "\n";

	// 修改字符串
	s[2] = 0xBABA;  //
	s[3] = GbChar::fromUnicode(U'');

	// 遍历GB18030字符
	cout << "GB string sizes: ";
	for (auto c : s)
		cout << dec << c.size() << " ";
	cout << "\n";

	// GB18030转Unicode
	u32string u32 = s.toUnicode();
	cout << "GB string to Unicode string length: " << u32.length() << " bytes: ";
	for (auto u : u32)
		cout << hex << u << " ";
	cout << "\n";

	// GB18030转字节流
	string bytes = s.toBytes();
	for (auto b : bytes)
		printf("%02x ", (unsigned char)b);
}

许可证

MIT License

Copyright(C) 2024 xuges@qq.com

About

中文编码字符集GB18030-2022规范文档、代码实现。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages