YSTest: YSLib::Text 命名空间参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

类 | 类型定义 | 函数 | 变量
YSLib::Text 命名空间参考

## 类

class | String
| YSLib 标准字符串（使用 UCS-2 作为内部编码）。 更多...
class | TextFileBuffer
| 文本文件块缓冲区。 更多...

## 类型定义

using | EncodingInfoItem = pair< Encoding, const char16_t * >
| 编码信息项目。 更多...

## 函数

YF_API size_t | WriteBOM (std::ostream &, Text::Encoding)
| 写入指定编码的 BOM 。 更多...
YF_API string | CopySliceFrom (TextFileBuffer &, size_t, size_t)
| 从文本文件缓冲区复制指定字节位置起始的字符串。 更多...
Encoding | VerifyEncoding (std::FILE *fp, char *s, size_t buflen, size_t txt_len, Encoding enc)
Encoding | VerifyEncoding (std::istream &stream, char *s, size_t buflen, size_t txt_len, Encoding enc)
pair< Encoding, size_t > | DetectBOM (std::istream &is, std::size_t fsize, Encoding enc)
bool | operator== (const TextFileBuffer::iterator &x, const TextFileBuffer::iterator &y) ynothrow
YF_API | YB_NONNULL (1) pair< Encoding
| 探测 BOM 和编码。 更多...
YF_API size_t | DetectBOM (const char *)
YF_API pair< Encoding, size_t > | DetectBOM (string_view)
YF_API pair< Encoding, size_t > | DetectBOM (std::istream &, size_t, Encoding=CS_Default)

## 变量

yconstexpr const EncodingInfoItem | Encodings []
| 编码信息。 更多...
YB_NONNULL(1, 2) Text YB_NONNULL(2) Text yconstexpr const char | BOM_UTF_16LE [] {"\xFF\xFE"}
| 验证流的编码。 更多...
yconstexpr const char | BOM_UTF_16BE [] {"\xFE\xFF"}
yconstexpr const char | BOM_UTF_8 [] {"\xEF\xBB\xBF"}
yconstexpr const char | BOM_UTF_32LE [] {"\xFF\xFE\x00\x00"}
yconstexpr const char | BOM_UTF_32BE [] {"\x00\x00\xFE\xFF"}
| CheckBOM
const char * | buf
const char const char * | str
| YB_NONNULL (1, 2) PDefH(bool
| 检查缓冲区是否具有指定的 BOM 。 更多...
const char const char size_t n | ImplRet (std::char_traits< char >::compare(buf, str, n)==0) template< size_t _vN > inline YB_NONNULL(1) bool CheckBOM(const char *buf

## 类型定义说明

using YSLib::Text::EncodingInfoItem = typedef pair<Encoding, const char16_t*>

编码信息项目。

自从
  build 641

在文件 ShellHelper.h 第 104 行定义.

## 函数说明

string YSLib::Text::CopySliceFrom | ( | TextFileBuffer & | buf,
|  | size_t | pos,
|  | size_t | len
| ) |  |

从文本文件缓冲区复制指定字节位置起始的字符串。

返回
  不越界时，第三参数为零则为空串，否则为尽可能长但不大于指定长度的缓冲区内容。

异常

  std::out_of_range | 起始位置越界无法访问。

注解
  可能刷新缓冲。

自从
  build 563

在文件 TextManager.cpp 第 324 行定义.

参考 YSLib::Text::TextFileBuffer::end(), YSLib::Text::TextFileBuffer::GetIterator(), str, YSLib::YAssert() , 以及 yunseq.

函数调用图:

pair< Encoding, size_t > YSLib::Text::DetectBOM | ( | const char * | buf | ) |

在文件 TextFile.cpp 第 72 行定义.

参考 CHRLib::CharSet::Null, CHRLib::CharSet::UTF_16BE(), CHRLib::CharSet::UTF_16LE(), CHRLib::CharSet::UTF_32BE(), CHRLib::CharSet::UTF_32LE(), CHRLib::CharSet::UTF_8(), YAssertNonnull , 以及 YSL_Impl_DetectBOM.

参考自 DetectBOM().

函数调用图:

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

pair<Encoding, size_t> YSLib::Text::DetectBOM | ( | std::istream & | is,
|  | std::size_t | fsize,
|  | Encoding | enc
| ) |  |

在文件 TextFile.cpp 第 102 行定义.

参考 buf, DetectBOM(), CHRLib::CharSet::Null, CHRLib::s, ystdex::size() , 以及 VerifyEncoding().

函数调用图:

pair< Encoding, size_t > YSLib::Text::DetectBOM | ( | string_view | sv | ) |

前置条件
  断言：参数的数据指针非空。

返回
  检查的编码和 BOM 长度，若失败为 `{CharSet::Null, 0}` 。

自从
  build 694

在文件 TextFile.cpp 第 87 行定义.

参考 CHRLib::CharSet::Null, CHRLib::CharSet::UTF_16BE(), CHRLib::CharSet::UTF_16LE(), CHRLib::CharSet::UTF_32BE(), CHRLib::CharSet::UTF_32LE(), CHRLib::CharSet::UTF_8(), YAssertNonnull , 以及 YSL_Impl_DetectBOM.

函数调用图:

YF_API pair<Encoding, size_t> YSLib::Text::DetectBOM | ( | std::istream & | ,
|  | size_t | ,
|  | Encoding | = `CS_Default`
| ) |  |

异常

  LoggedEvent | 流在检查 BOM 时候读取的字符数不是非负数。

参见
  VerifyEncoding

自从
  build 621

设置流读位置为起始位置。当流大小大于 1 时试验读取前 4 字节并检查 BOM 。 若没有发现 BOM ，调用 VerifyEncoding 按前 64 字节探测编码。 读取 BOM 时若遇到流无效，直接返回 `{CharSet::Null, 0}` 。

const char const char size_t n YSLib::Text::ImplRet | ( | std::char_traits< char >:: | comparebuf, str, n = `= 0` | ) | const

bool YSLib::Text::operator== | ( | const TextFileBuffer::iterator & | x,
|  | const TextFileBuffer::iterator & | y
| ) |  |

在文件 TextManager.cpp 第 162 行定义.

参考 YSLib::Drawing::x, YSLib::UI::y , 以及 YSLib::YAssert().

函数调用图:

Encoding YSLib::Text::VerifyEncoding | ( | std::FILE * | fp,
|  | char * | s,
|  | size_t | buflen,
|  | size_t | txt_len,
|  | Encoding | enc
| ) |  |

在文件 TextFile.cpp 第 40 行定义.

参考 ystdex::as_const(), ystdex::assign(), CHRLib::enc, ystdex::min(), platform::n, platform::Nonnull(), CHRLib::CharSet::Null , 以及 CHRLib::VerifyUC().

参考自 DetectBOM().

函数调用图:

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

Encoding YSLib::Text::VerifyEncoding | ( | std::istream & | stream,
|  | char * | s,
|  | size_t | buflen,
|  | size_t | txt_len,
|  | Encoding | enc
| ) |  |

在文件 TextFile.cpp 第 55 行定义.

参考 ystdex::as_const(), ystdex::assign(), CHRLib::enc, ystdex::min(), platform::n, platform::Nonnull(), CHRLib::CharSet::Null , 以及 CHRLib::VerifyUC().

函数调用图:

size_t YSLib::Text::WriteBOM | ( | std::ostream & | os,
|  | Text::Encoding | enc
| ) |  |

写入指定编码的 BOM 。

返回
  写入的 BOM 的长度。

注解
  只写入 UTF-16 、 UTF-8 或 UTF-32 的 BOM 。

自从
  build 617

在文件 TextFile.cpp 第 129 行定义.

参考 CHRLib::CharSet::UTF_16BE(), CHRLib::CharSet::UTF_16LE(), CHRLib::CharSet::UTF_32BE(), CHRLib::CharSet::UTF_32LE(), CHRLib::CharSet::UTF_8() , 以及 YSL_Impl_WriteBOM.

函数调用图:

YSLib::Text::YB_NONNULL | ( | 1 | ,
|  | 2 |
| ) |  |

inline

检查缓冲区是否具有指定的 BOM 。

前置条件
  指针参数非空。

自从
  build 619

YF_API YSLib::Text::YB_NONNULL | ( | 1 |  | ) |

探测 BOM 和编码。

前置条件
  参数指定的缓冲区至少具有 4 个字节可读。
  断言：参数非空。

返回
  检查的编码和 BOM 长度，若失败为 `{CharSet::Null, 0}` 。

自从
  build 619

## 变量说明

yconstexpr const char YSLib::Text::BOM_UTF_16BE[] {"\xFE\xFF"}

在文件 TextFile.h 第 65 行定义.

YB_NONNULL (1, 2) Text YB_NONNULL (2) Text yconstexpr const char YSLib::Text::BOM_UTF_16LE[] {"\xFF\xFE"}

验证流的编码。

注解
  第二参数和第三参数指定缓冲区，第四参数指定最大文本长度， 第五参数参数指定验证的编码。
  假定调用前流状态正常。

自从
  build 621

Unicode 编码模式标记。

Unicode Encoding Scheme Signatures BOM（byte-order mark ，字节顺序标记）常量。

注解
  在 Unicode 3.2 前作为零宽无间断空格字符在对应字符集的编码单字节序列。
  适用于未明确字节序或字符集的流。

自从
  build 297

在文件 TextFile.h 第 64 行定义.

yconstexpr const char YSLib::Text::BOM_UTF_32BE[] {"\x00\x00\xFE\xFF"}

在文件 TextFile.h 第 68 行定义.

yconstexpr const char YSLib::Text::BOM_UTF_32LE[] {"\xFF\xFE\x00\x00"}

在文件 TextFile.h 第 67 行定义.

yconstexpr const char YSLib::Text::BOM_UTF_8[] {"\xEF\xBB\xBF"}

在文件 TextFile.h 第 66 行定义.

参考自 YSLib::SaveConfiguration().

const char* YSLib::Text::buf

在文件 TextFile.h 第 77 行定义.

参考自 NPL::DecomposeMakefileDepList(), DetectBOM(), YReader::FetchImage(), YSLib::ImplDeDtor(), ystdex::read_uint_be(), ystdex::read_uint_le() , 以及 ystdex::write_uint_be().

YSLib::Text::CheckBOM

在文件 TextFile.h 第 77 行定义.

yconstexpr const EncodingInfoItem YSLib::Text::Encodings[]

初始值:
{{CharSet::UTF_8, u"UTF-8"},
{CharSet::GBK, u"GBK"}, {CharSet::UTF_16BE, u"UTF-16 Big Endian"},
{CharSet::UTF_16LE, u"UTF-16 Little Endian"},
{CharSet::UTF_32BE, u"UTF-32 Big Endian"},
{CharSet::UTF_32LE, u"UTF-32 Little Endian"}}
CHRLib::CharSet::UTF_8
yconstexpr const Encoding UTF_8(csUTF8)
CHRLib::CharSet::UTF_32LE
yconstexpr const Encoding UTF_32LE(csUTF32LE)
CHRLib::CharSet::UTF_32BE
yconstexpr const Encoding UTF_32BE(csUTF32BE)
CHRLib::CharSet::UTF_16BE
yconstexpr const Encoding UTF_16BE(csUTF16BE)
CHRLib::CharSet::UTF_16LE
yconstexpr const Encoding UTF_16LE(csUTF16LE)
CHRLib::CharSet::GBK
yconstexpr const Encoding GBK(csGBK)

编码信息。

自从
  build 307

在文件 ShellHelper.h 第 110 行定义.

参考自 YReader::FetchEncodingString() , 以及 YReader::ShlTextReader::SettingSession::SettingSession().

const char const char size_t n const char(& YSLib::Text::str

初始值:
{
return CheckBOM(buf, str, _vN - 1)
YSLib::Text::buf
const char * buf
Definition: TextFile.h:77
YSLib::Text::str
const char const char * str
Definition: TextFile.h:77
YSLib::Text::CheckBOM
CheckBOM
Definition: TextFile.h:77

在文件 TextFile.h 第 77 行定义.

参考自 NPL::SXML::ConvertDocumentNode(), platform::FAT::LFN::ConvertToAlias(), CopySliceFrom(), YSLib::Environment::Environment(), ystdex::erase_left(), ystdex::erase_right(), YSLib::ExtractInitException(), YSLib::IO::FetchCurrentWorkingDirectory(), YSLib::Drawing::FetchMaxTextWidth(), YSLib::IO::PathTraits::is_parent(), YSLib::IO::PathTraits::is_root(), ystdex::path_traits< std::basic_string< _tChar, _tAlloc > >::is_self(), YSLib::IO::PathTraits::is_self(), platform::LogWithSource(), ystdex::ltrim(), main(), YSLib::MakeIndex(), CHRLib::Transcoding< _vFrom, _vTo, _tDispatcher >::MakeTranscoded(), CHRLib::Transcoding< _vFrom, CharSet::Null, _tDispatcher >::MakeTranscoded(), CHRLib::Transcoding< _vFrom, _vTo, _tDispatcher >::MakeViewTranscoded(), CHRLib::Transcoding< _vFrom, CharSet::Null, _tDispatcher >::MakeViewTranscoded(), ystdex::normalize(), YSLib::IO::NormalizeDirectoryPathTail(), ystdex::ntctsncpy(), ystdex::openmode_conv(), ystdex::operator<<(), ystdex::restrict_length(), ystdex::rtrim(), YReader::ShlReader::SaveBookmarks(), ystdex::sfmt(), ystdex::string_begin(), ystdex::string_end(), ystdex::string_length(), NPL::Tokenize(), YSLib::TranslateTime(), ystdex::trim(), YReader::ReaderBox::UpdateData() , 以及 ystdex::vsfmt().