chenjunfu2-nbt-cpp v2.1.0
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
MUTF8_Tool.hpp 文件参考

Java Modified-UTF-8工具集 更多...

#include <string>
#include <type_traits>
#include <assert.h>
#include <stdint.h>
#include <stddef.h>
#include <array>
#include <algorithm>

浏览该文件的源代码.

class  MUTF8_Tool_Internal::StringLiteral< T, N >
 用于编译期构造静态字符串字面量为字符数组,作为模板参数,使得模板能接受字符串的辅助类 更多...
class  MUTF8_Tool< MU8T, U16T, U8T >
 用于处理Java的Modified-UTF-8(以下简称M-UTF-8)字符串与UTF-8或UTF-16的静态或动态转换 更多...

命名空间

namespace  MUTF8_Tool_Internal
 用于存放MUTF8_Tool使用的,无法存在于类内的辅助类

宏定义

#define U16CV2MU8(u16String)
 UTF-16到M-UTF-8字符串转换的便捷宏
#define MU8CV2U16(mu8String)
 M-UTF-8到UTF-16字符串转换的便捷宏
#define U8CV2MU8(u8String)
 UTF-8到M-UTF-8字符串转换的便捷宏
#define MU8CV2U8(mu8String)
 M-UTF-8到UTF-8字符串转换的便捷宏
#define U16TOMU8STR(u16LiteralString)
 UTF-16字符串字面量到M-UTF-8静态字符串数组的编译期转换宏
#define U8TOMU8STR(u8LiteralString)
 UTF-8字符串字面量到M-UTF-8静态字符串数组的编译期转换宏

函数

template<auto ArrayData, typename View_Type>
consteval View_Type MUTF8_Tool_Internal::ToStringView (void) noexcept
 利用模板固化编译期求值函数返回的数组临时量

详细描述

Java Modified-UTF-8工具集

宏定义说明

◆ MU8CV2U16

#define MU8CV2U16 ( mu8String)
值:
static std::basic_string< U16T > MU8ToU16(const std::basic_string_view< MU8T > &mu8String, size_t szReserve=0)
获取M-UTF-8转换到UTF-16的字符串
定义 MUTF8_Tool.hpp:1014

M-UTF-8到UTF-16字符串转换的便捷宏

参数
mu8StringM-UTF-8字符串视图
返回
转换后的UTF-16字符串

◆ MU8CV2U8

#define MU8CV2U8 ( mu8String)
值:
static std::basic_string< U8T > MU8ToU8(const std::basic_string_view< MU8T > &mu8String, size_t szReserve=0)
获取M-UTF-8转换到UTF-8的字符串
定义 MUTF8_Tool.hpp:1056

M-UTF-8到UTF-8字符串转换的便捷宏

参数
mu8StringM-UTF-8字符串视图
返回
转换后的UTF-8字符串

◆ U16CV2MU8

#define U16CV2MU8 ( u16String)
值:
static consteval std::basic_string_view< MU8T > U16ToMU8(void)
通过UTF-16字符串字面量,直接获得编译期的M-UTF-8静态字符串
定义 MUTF8_Tool.hpp:914

UTF-16到M-UTF-8字符串转换的便捷宏

参数
u16StringUTF-16字符串视图
返回
转换后的M-UTF-8字符串

◆ U16TOMU8STR

#define U16TOMU8STR ( u16LiteralString)
值:

UTF-16字符串字面量到M-UTF-8静态字符串数组的编译期转换宏

参数
u16LiteralStringUTF-16字符串字面量
返回
编译期生成的std::array存储的静态字符串数组
注解
在M-UTF-8中,任何字符串结尾\0都会被映射成0xC0 0x80,且保证串中不包含\0,所以一定程度上可以和C字符串(以\0结尾)兼容

◆ U8CV2MU8

#define U8CV2MU8 ( u8String)
值:
static consteval std::basic_string_view< MU8T > U8ToMU8(void)
通过UTF-8字符串字面量,直接获得编译期的M-UTF-8静态字符串
定义 MUTF8_Tool.hpp:975

UTF-8到M-UTF-8字符串转换的便捷宏

参数
u8StringUTF-8字符串视图
返回
转换后的M-UTF-8字符串

◆ U8TOMU8STR

#define U8TOMU8STR ( u8LiteralString)
值:

UTF-8字符串字面量到M-UTF-8静态字符串数组的编译期转换宏

参数
u8LiteralStringUTF-8字符串字面量
返回
编译期生成的std::array存储的静态字符串数组
注解
在M-UTF-8中,任何字符串结尾\0都会被映射成0xC0 0x80,且保证串中不包含\0,所以一定程度上可以和C字符串(以\0结尾)兼容