YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
CHRLib 命名空间参考

命名空间

namespace  CharSet
 

struct  ConversionState
 编码转换状态。 更多...
 
class  GUCS2Mapper
 静态编码映射模板及 Unicode 编码特化。 更多...
 
struct  GUCS2Mapper< CharSet::UTF_8 >
 
struct  GUCS2Mapper< CharSet::UTF_16BE >
 
struct  GUCS2Mapper< CharSet::UTF_16LE >
 

类型定义

typedef char16_t ucs2_t
 UCS-2 字符类型。
 
typedef char32_t ucs4_t
 UCS-4 字符类型。
 
typedef std::char_traits
< ucs4_t >::int_type 
ucsint_t
 UCS 整数类型。
 

枚举

enum  ConversionResult
 编码转换结果。 更多...
 

函数

ucs2_t FetchBiCharBE (const char *c_ptr)
 取 c_ptr 指向的大端序双字节字符。
 
ucs2_t FetchBiCharLE (const char *c_ptr)
 取 c_ptr 指向的小端序双字节字符。
 
yconstfn std::uint_fast8_t & GetCountOf (ConversionState &st)
 
yconstfn ucsint_tGetWideOf (ConversionState &st)
 
yconstfn byte * GetSequenceOf (ConversionState &st)
 
template<typename _type >
yconstfn _type & GetCountOf (_type &st)
 一般类型计数。
 
YF_API size_t FetchFixedCharWidth (Encoding)
 取指定固定编码的固定字符宽度。
 
YF_API size_t FetchMaxCharWidth (Encoding)
 取指定编码的最大字符宽度。
 
YF_API size_t FetchMaxVariantCharWidth (Encoding)
 取指定变长编码的最大字符宽度。
 
template<typename _tChar >
yconstfn bool IsASCII (_tChar c)
 判断整数类型字符是否为 ASCII 字符。
 
template<typename _tChar >
yconstfn char ToASCII (_tChar c)
 任意整数类型字符转换为 ASCII 字符。
 
YF_API size_t UCToMBC (char *, const ucs2_t &, Encoding)
 按指定编码转换 UCS-2 字符中字符为字符串表示的多字节字符,返回转换的字节数。
 
YF_API size_t MBCSToUCS2 (ucs2_t *, const char *, Encoding=CS_Default)
 按指定编码转换 MBCS 字符串为 UTF-16LE 字符串,返回转换的串长。
 
YF_API size_t UCS2ToMBCS (char *, const ucs2_t *, Encoding=CS_Default)
 按指定编码转换 UTF-16LE 字符串为 MBCS 字符串,返回转换的串长。
 
YF_API size_t UCS4ToUCS2 (ucs2_t *, const ucs4_t *)
 转换 UCS-4 字符串为 UCS-2 字符串,返回转换的串长。
 
template<class _tDst , class _tSrc >
_tDst GetMBCSOf (const _tSrc &src, Encoding enc=CS_Default)
 取指定编码的多字节字符串。
 
YF_API char * strdup (const ucs2_t *, Encoding=CS_Default)
 复制 UCS-2LE 字符串为多字节字符串。
 
YF_API ucs2_tucsdup (const char *, Encoding=CS_Default)
 复制多字节字符串为 UCS-2/UTF-16LE 字符串。
 
YF_API ucs2_tucsdup (const ucs2_t *)
 复制 UCS-2 字符串。
 
YF_API ucs2_tucsdup (const ucs4_t *)
 复制 UCS-4 字符串为 UCS-2 字符串。
 
template<typename _tIn , typename _fConv >
ConversionResult ConvertCharacter (_fConv f, ucs2_t &uc, _tIn &&it, ConversionState &&st)
 
template<typename _tIn , typename _fConv >
ConversionResult ConvertCharacter (_fConv f, _tIn &&it, ConversionState &&st)
 
template<typename _tIn , typename _tState >
bool FillByte (_tIn &i, _tState &st)
 以输入迭代器指向内容填充有效输入迭代器指定的字节。
 
YF_API ConversionResult MBCToUC (ucs2_t &, const char *&, Encoding, ConversionState &&={})
 按指定编码和转换状态转换字符串中字符为 UCS-2 字符,返回转换的字节数。
 
ConversionResult MBCToUC (ucs2_t &uc, const char *&c, Encoding enc, ConversionState &st)
 
YF_API ConversionResult MBCToUC (ucs2_t &, std::FILE *, Encoding, ConversionState &&={})
 按指定编码和转换状态转换字符流中字符为 UCS-2 字符,返回转换的字节数。
 
ConversionResult MBCToUC (ucs2_t &uc, std::FILE *fp, Encoding enc, ConversionState &st)
 
YF_API ConversionResult MBCToUC (const char *&, Encoding, ConversionState &&={})
 按指定编码和转换状态返回转换字符为 UCS-2 字符的字节数。
 
ConversionResult MBCToUC (const char *&c, Encoding enc, ConversionState &st)
 
YF_API ConversionResult MBCToUC (std::FILE *, Encoding, ConversionState &&={})
 
ConversionResult MBCToUC (std::FILE *fp, Encoding enc, ConversionState &st)
 
template<Encoding , typename... _tParams>
yconstfn ConversionResult UCS2Mapper_Map (_tParams &&...)
 取映射函数。
 
template<Encoding _vEnc, typename _tDst , typename _tSrc , typename _tState >
yconstfn ConversionResult UCS2Mapper_Map (_tDst &&d, _tSrc &&s, _tState &&st, decltype(&GUCS2Mapper< _vEnc >::template Map< _tDst, _tSrc, _tState >)={})
 
template<Encoding _vEnc, typename _tDst , typename _tSrc >
yconstfn byte UCS2Mapper_InverseMap (_tDst, _tSrc)
 
template<Encoding _vEnc, typename _tDst >
yconstfn byte UCS2Mapper_InverseMap (_tDst &&d, const ucs2_t &s, decltype(&GUCS2Mapper< _vEnc >::template InverseMap< _tDst >)={})
 
template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult UCS2Mapper (ucs2_t &uc, _tIn &&i, _tState &&st)
 
template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult UCS2Mapper (_tIn &&i, _tState &&st)
 
template<Encoding _vEnc>
byte UCS2Mapper (char *d, const ucs2_t &s)
 

变量

yconstexpr Encoding CS_Default = CharSet::UTF_8
 默认字符编码。
 

类型定义说明

typedef char16_t CHRLib::ucs2_t

UCS-2 字符类型。

在文件 chrdef.h54 行定义.

typedef char32_t CHRLib::ucs4_t

UCS-4 字符类型。

在文件 chrdef.h55 行定义.

typedef std::char_traits<ucs4_t>::int_type CHRLib::ucsint_t

UCS 整数类型。

在文件 chrdef.h56 行定义.

枚举类型说明

编码转换结果。

自从
build 273

在文件 chrmap.h74 行定义.

函数说明

template<typename _tIn , typename _fConv >
ConversionResult CHRLib::ConvertCharacter ( _fConv  f,
ucs2_t &  uc,
_tIn &&  it,
ConversionState &&  st 
)
template<typename _tIn , typename _fConv >
ConversionResult CHRLib::ConvertCharacter ( _fConv  f,
_tIn &&  it,
ConversionState &&  st 
)

在文件 Convert.hpp45 行定义.

ucs2_t CHRLib::FetchBiCharBE ( const char *  c_ptr)
inline

取 c_ptr 指向的大端序双字节字符。

前置条件
断言: c_ptr

在文件 chrmap.h50 行定义.

参考 yconstraint.

ucs2_t CHRLib::FetchBiCharLE ( const char *  c_ptr)
inline

取 c_ptr 指向的小端序双字节字符。

前置条件
断言: c_ptr

在文件 chrmap.h62 行定义.

参考 yconstraint.

YF_API size_t CHRLib::FetchFixedCharWidth ( Encoding  )

取指定固定编码的固定字符宽度。

返回
未定义编码或变长编码返回 0 ,否则为指定编码中每个字符占用的字节数。
注解
UTF-16 视为 UCS-2 。
自从
build 273

在文件 chrmap.cpp35 行定义.

参考 CHRLib::CharSet::csASCII,CHRLib::CharSet::csUCS4,CHRLib::CharSet::csUnicode,CHRLib::CharSet::csUTF16,CHRLib::CharSet::csUTF16BE,CHRLib::CharSet::csUTF16LE,CHRLib::CharSet::csUTF32,CHRLib::CharSet::csUTF32BE , 以及 CHRLib::CharSet::csUTF32LE.

参考自 FetchMaxCharWidth().

这是这个函数的调用关系图:

YF_API size_t CHRLib::FetchMaxCharWidth ( Encoding  )

取指定编码的最大字符宽度。

返回
未定义编码返回 0 ,否则为指定编码中每个字符最大可能占用的字节数。
注解
UTF-16 视为 UCS-2 。
自从
build 273

在文件 chrmap.cpp57 行定义.

参考 FetchFixedCharWidth() , 以及 FetchMaxVariantCharWidth().

函数调用图:

YF_API size_t CHRLib::FetchMaxVariantCharWidth ( Encoding  )

取指定变长编码的最大字符宽度。

返回
未定义编码或固定编码返回 0 ,否则为指定编码中每个字符最大可能占用的字节数。
注解
UTF-16 视为 UCS-2 。
自从
build 273

在文件 chrmap.cpp65 行定义.

参考 CHRLib::CharSet::csGB18030,CHRLib::CharSet::csGBK , 以及 CHRLib::CharSet::csUTF8.

参考自 FetchMaxCharWidth().

这是这个函数的调用关系图:

template<typename _tIn , typename _tState >
bool CHRLib::FillByte ( _tIn &  i,
_tState &  st 
)
inline

以输入迭代器指向内容填充有效输入迭代器指定的字节。

自从
build 273

在文件 smap.hpp43 行定义.

参考 GetCountOf(),GetSequenceOf(),ystdex::is_undereferenceable(),YB_UNLIKELY , 以及 yunseq().

参考自 CHRLib::GUCS2Mapper< CharSet::UTF_8 >::Map(),GUCS2Mapper< CharSet::GBK >::Map(),CHRLib::GUCS2Mapper< CharSet::UTF_16BE >::Map() , 以及 CHRLib::GUCS2Mapper< CharSet::UTF_16LE >::Map().

函数调用图:

这是这个函数的调用关系图:

template<typename _type >
yconstfn _type& CHRLib::GetCountOf ( _type &  st)

一般类型计数。

自从
build 273

在文件 chrmap.h129 行定义.

template<class _tDst , class _tSrc >
_tDst CHRLib::GetMBCSOf ( const _tSrc &  src,
Encoding  enc = CS_Default 
)

取指定编码的多字节字符串。

自从
build 305

在文件 chrproc.h156 行定义.

参考 UCS2ToMBCS().

函数调用图:

yconstfn ucsint_t& CHRLib::GetWideOf ( ConversionState &  st)

在文件 chrmap.h112 行定义.

参考 CHRLib::ConversionState::Value , 以及 CHRLib::ConversionState::Wide.

template<typename _tChar >
yconstfn bool CHRLib::IsASCII ( _tChar  c)

判断整数类型字符是否为 ASCII 字符。

注解
截取低 7 位。

在文件 chrproc.h50 行定义.

YF_API size_t CHRLib::MBCSToUCS2 ( ucs2_t *  ,
const char *  ,
Encoding  = CS_Default 
)

按指定编码转换 MBCS 字符串为 UTF-16LE 字符串,返回转换的串长。

前置条件
断言: 指针参数非空 。
自从
build 291
YF_API ConversionResult CHRLib::MBCToUC ( ucs2_t &  ,
const char *&  ,
Encoding  ,
ConversionState &&  = {} 
)

按指定编码和转换状态转换字符串中字符为 UCS-2 字符,返回转换的字节数。

自从
build 291

参考自 MBCToUC(),YSLib::TextFile::ReadChar() , 以及 YSLib::TextFile::SkipChar().

这是这个函数的调用关系图:

ConversionResult CHRLib::MBCToUC ( ucs2_t &  uc,
const char *&  c,
Encoding  enc,
ConversionState &  st 
)
inline

在文件 chrproc.h75 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC ( ucs2_t &  ,
std::FILE *  ,
Encoding  ,
ConversionState &&  = {} 
)

按指定编码和转换状态转换字符流中字符为 UCS-2 字符,返回转换的字节数。

前置条件
断言:指针参数非空。
自从
build 291
ConversionResult CHRLib::MBCToUC ( ucs2_t &  uc,
std::FILE *  fp,
Encoding  enc,
ConversionState &  st 
)
inline

在文件 chrproc.h89 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC ( const char *&  ,
Encoding  ,
ConversionState &&  = {} 
)

按指定编码和转换状态返回转换字符为 UCS-2 字符的字节数。

自从
build 291
ConversionResult CHRLib::MBCToUC ( const char *&  c,
Encoding  enc,
ConversionState &  st 
)
inline

在文件 chrproc.h102 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC ( std::FILE *  ,
Encoding  ,
ConversionState &&  = {} 
)
前置条件
断言:指针参数非空。
ConversionResult CHRLib::MBCToUC ( std::FILE *  fp,
Encoding  enc,
ConversionState &  st 
)
inline

在文件 chrproc.h111 行定义.

参考 MBCToUC().

函数调用图:

YF_API char* CHRLib::strdup ( const ucs2_t *  ,
Encoding  = CS_Default 
)

复制 UCS-2LE 字符串为多字节字符串。

前置条件
断言: 指针参数非空 。
注解
空间由 std::free 释放。
自从
build 305
template<typename _tChar >
yconstfn char CHRLib::ToASCII ( _tChar  c)

任意整数类型字符转换为 ASCII 字符。

注解
截取低 7 位。

在文件 chrproc.h61 行定义.

template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult CHRLib::UCS2Mapper ( ucs2_t &  uc,
_tIn &&  i,
_tState &&  st 
)

在文件 smap.hpp264 行定义.

template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult CHRLib::UCS2Mapper ( _tIn &&  i,
_tState &&  st 
)

在文件 smap.hpp270 行定义.

template<Encoding _vEnc>
byte CHRLib::UCS2Mapper ( char *  d,
const ucs2_t &  s 
)

在文件 smap.hpp276 行定义.

参考 yconstraint.

template<Encoding _vEnc, typename _tDst , typename _tSrc >
yconstfn byte CHRLib::UCS2Mapper_InverseMap ( _tDst  ,
_tSrc   
)

在文件 smap.hpp249 行定义.

template<Encoding _vEnc, typename _tDst >
yconstfn byte CHRLib::UCS2Mapper_InverseMap ( _tDst &&  d,
const ucs2_t &  s,
decltype &<>::<>  _tDst = {} 
)

在文件 smap.hpp255 行定义.

template<Encoding , typename... _tParams>
yconstfn ConversionResult CHRLib::UCS2Mapper_Map ( _tParams &&  ...)

取映射函数。

自从
build 273

在文件 smap.hpp235 行定义.

template<Encoding _vEnc, typename _tDst , typename _tSrc , typename _tState >
yconstfn ConversionResult CHRLib::UCS2Mapper_Map ( _tDst &&  d,
_tSrc &&  s,
_tState &&  st,
decltype(&GUCS2Mapper< _vEnc >::template Map< _tDst, _tSrc, _tState >)  = {} 
)

在文件 smap.hpp241 行定义.

YF_API size_t CHRLib::UCS2ToMBCS ( char *  ,
const ucs2_t *  ,
Encoding  = CS_Default 
)

按指定编码转换 UTF-16LE 字符串为 MBCS 字符串,返回转换的串长。

前置条件
断言: 指针参数非空 。
自从
build 291
YF_API size_t CHRLib::UCS4ToUCS2 ( ucs2_t *  ,
const ucs4_t *   
)

转换 UCS-4 字符串为 UCS-2 字符串,返回转换的串长。

前置条件
断言: 指针参数非空 。
YF_API ucs2_t* CHRLib::ucsdup ( const char *  ,
Encoding  = CS_Default 
)

复制多字节字符串为 UCS-2/UTF-16LE 字符串。

前置条件
断言: 指针参数非空 。
注解
空间由 std::free 释放。
自从
build 291

在文件 chrproc.cpp172 行定义.

参考 MBCSToUCS2(),YB_LIKELY , 以及 yconstraint.

函数调用图:

YF_API ucs2_t* CHRLib::ucsdup ( const ucs2_t *  )

复制 UCS-2 字符串。

前置条件
断言: 指针参数非空 。
注解
空间由 std::free 释放。
YF_API ucs2_t* CHRLib::ucsdup ( const ucs4_t *  )

复制 UCS-4 字符串为 UCS-2 字符串。

前置条件
断言: 指针参数非空 。
注解
空间由 std::free 释放。
YF_API size_t CHRLib::UCToMBC ( char *  ,
const ucs2_t &  ,
Encoding   
)

按指定编码转换 UCS-2 字符中字符为字符串表示的多字节字符,返回转换的字节数。

前置条件
断言: 指针参数非空 。
自从
build 305

变量说明

yconstexpr Encoding CHRLib::CS_Default = CharSet::UTF_8

默认字符编码。

自从
build 287

在文件 chrmap.h42 行定义.