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

YSTest PreAlpha_b900_20201012 The YSLib Test Project

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

## 类

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

## 类型定义

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

## 函数

YB_ATTR_nodiscard YB_PURE | YB_NONNULL (1, 2) inline PDefH(bool
| 检查第一参数是否具有指定的 BOM 。 更多...
YB_ATTR_nodiscard YB_PURE const char const char size_t n | ImplRet (std::char_traits< char >::compare(Nonnull(buf), str, n)==0) template< size_t _vN > YB_ATTR_nodiscard YB_PURE YB_NONNULL(1) inline bool CheckBOM(const char *buf
template<size_t _vN>
YB_ATTR_nodiscard YB_PURE bool | CheckBOM (string_view sv, const char(&str)[_vN])
YB_ATTR_nodiscard YF_API bool | CheckBOM (std::istream &, string_view)
template<size_t _vN>
YB_ATTR_nodiscard bool | CheckBOM (std::istream &is, const char(&str)[_vN])
YB_ATTR_nodiscard YF_API | YB_NONNULL (1) YB_PURE pair< Encoding
| 探测 BOM 和编码。 更多...
YB_ATTR_nodiscard YF_API size_t | DetectBOM (const char *)
YB_ATTR_nodiscard YF_API YB_PURE pair< Encoding, size_t > | DetectBOM (string_view)
YB_ATTR_nodiscard YF_API pair< Encoding, size_t > | DetectBOM (std::streambuf &, size_t, Encoding=CS_Default)
YB_ATTR_nodiscard YF_API pair< Encoding, size_t > | DetectBOM (std::istream &, size_t, Encoding=CS_Default)
YF_API size_t | WriteBOM (std::ostream &, Text::Encoding)
| 写入指定编码的 BOM 。 更多...
template<class _type , typename _tBOM >
void | SkipBOM (_type &is, const _tBOM &bom)
| 跳过可选的 BOM 的流。 更多...
template<class _type , typename _tBOM , typename... _tParams>
YB_ATTR_nodiscard unique_ptr< _type > | OpenSkippedBOMtream (const _tBOM &bom, _tParams &&... args)
| 打开跳过可选的 BOM 的流。 更多...
YF_API u16string | 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::streambuf &sb, 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::streambuf &sb, std::size_t fsize, 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

## 变量

const EncodingInfoItem | Encodings []
| 编码信息。 更多...
YB_ATTR_nodiscard YB_NONNULL(1, 2) Text YB_ATTR_nodiscard YB_NONNULL(2) Text YB_ATTR_nodiscard 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"}
YB_ATTR_nodiscard YB_PURE | CheckBOM
YB_ATTR_nodiscard YB_PURE const char * | buf
YB_ATTR_nodiscard YB_PURE const char const char * | str

## 类型定义说明

## ◆ EncodingInfoItem

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

编码信息项目。

自从
  build 641

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

## 函数说明

## ◆ CheckBOM() [1/3]

YB_ATTR_nodiscard YF_API bool YSLib::Text::CheckBOM | ( | std::istream & | is,
|  | string_view | str
| ) |  |

前置条件
  断言：第二参数表示的字符数不超过最长的 BOM 长度。

注解
  不检查读写位置，直接读取流然后检查读取的内容。

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

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

引用了 buf, CheckBOM, str , 以及 YSLib::YAssert().

函数调用图:

## ◆ CheckBOM() [2/3]

template<size_t _vN>

YB_ATTR_nodiscard bool YSLib::Text::CheckBOM | ( | std::istream & | is,
|  | const char(&) | str[_vN]
| ) |  |

inline

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

引用了 CheckBOM , 以及 str.

## ◆ CheckBOM() [3/3]

template<size_t _vN>

YB_ATTR_nodiscard YB_PURE bool YSLib::Text::CheckBOM | ( | string_view | sv,
|  | const char(&) | str[_vN]
| ) |  |

inline

自从
  build 724

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

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

引用了 CheckBOM , 以及 str.

## ◆ CopySliceFrom()

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

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

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

异常

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

注解
  可能刷新缓冲。

自从
  build 835

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

引用了 buf, YSLib::i, str, YSLib::YAssert() , 以及 yunseq.

函数调用图:

## ◆ DetectBOM() [1/6]

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

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

引用了 buf, 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().

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

## ◆ DetectBOM() [2/6]

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

## ◆ DetectBOM() [3/6]

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

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

引用了 buf, DetectBOM(), CHRLib::enc, CHRLib::CharSet::Null, CHRLib::s, size , 以及 VerifyEncoding().

函数调用图:

## ◆ DetectBOM() [4/6]

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

异常

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

参见
  VerifyEncoding

自从
  build 621

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

自从
  build 743

## ◆ DetectBOM() [5/6]

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

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

引用了 buf, DetectBOM(), CHRLib::enc, CHRLib::CharSet::Null, CHRLib::s, size , 以及 VerifyEncoding().

函数调用图:

## ◆ DetectBOM() [6/6]

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

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

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

自从
  build 694

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

引用了 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.

函数调用图:

## ◆ ImplRet()

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

引用了 buf, CheckBOM , 以及 str.

## ◆ OpenSkippedBOMtream()

template<class _type , typename _tBOM , typename... _tParams>

YB_ATTR_nodiscard unique_ptr<_type> YSLib::Text::OpenSkippedBOMtream | ( | const _tBOM & | bom,
|  | _tParams &&... | args
| ) |  |

打开跳过可选的 BOM 的流。

参见
  Text::CheckBOM

自从
  build 805

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

引用了 YSLib::args, platform::p, SkipBOM() , 以及 yforward.

函数调用图:

## ◆ operator==()

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

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

引用了 x, YSLib::UI::y , 以及 YSLib::YAssert().

函数调用图:

## ◆ SkipBOM()

template<class _type , typename _tBOM >

void YSLib::Text::SkipBOM | ( | _type & | is,
|  | const _tBOM & | bom
| ) |  |

跳过可选的 BOM 的流。

参见
  Text::CheckBOM

自从
  build 805

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

引用了 CheckBOM.

被这些函数引用 OpenSkippedBOMtream().

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

## ◆ VerifyEncoding() [1/3]

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

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

引用了 ystdex::cpp2017::as_const(), ystdex::assign(), CHRLib::enc, fp, ystdex::cpp2014::min(), platform::Nonnull(), CHRLib::CharSet::Null, CHRLib::s , 以及 CHRLib::VerifyUC().

被这些函数引用 DetectBOM().

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

## ◆ VerifyEncoding() [2/3]

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

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

引用了 ystdex::cpp2017::as_const(), ystdex::assign(), CHRLib::enc, ystdex::cpp2014::min(), platform::Nonnull(), CHRLib::CharSet::Null, CHRLib::s , 以及 CHRLib::VerifyUC().

函数调用图:

## ◆ VerifyEncoding() [3/3]

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

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

引用了 ystdex::cpp2017::as_const(), ystdex::assign(), CHRLib::enc, ystdex::cpp2014::min(), platform::Nonnull(), CHRLib::CharSet::Null, CHRLib::s , 以及 CHRLib::VerifyUC().

函数调用图:

## ◆ WriteBOM()

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

写入指定编码的 BOM 。

返回
  写入的 BOM 的长度。

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

自从
  build 617

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

引用了 CHRLib::enc, CHRLib::CharSet::UTF_16BE(), CHRLib::CharSet::UTF_16LE(), CHRLib::CharSet::UTF_32BE(), CHRLib::CharSet::UTF_32LE(), CHRLib::CharSet::UTF_8() , 以及 YSL_Impl_WriteBOM.

函数调用图:

## ◆ YB_NONNULL() [1/2]

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

探测 BOM 和编码。

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

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

自从
  build 619

## ◆ YB_NONNULL() [2/2]

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

检查第一参数是否具有指定的 BOM 。

前置条件
  间接断言：指针参数非空。

自从
  build 619

## 变量说明

## ◆ BOM_UTF_16BE

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

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

## ◆ BOM_UTF_16LE

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

验证编码。

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

自从
  build 621
  build 743

Unicode 编码模式标记。

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

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

自从
  build 297

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

## ◆ BOM_UTF_32BE

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

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

## ◆ BOM_UTF_32LE

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

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

## ◆ BOM_UTF_8

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

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

被这些函数引用 NPL::A1::OpenFile().

## ◆ buf

YB_ATTR_nodiscard YB_PURE const char* YSLib::Text::buf

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

被这些函数引用 ystdex::basic_membuf< _tChar, _tTraits >::basic_membuf(), YSLib::Drawing::BlitTo(), CheckBOM(), YSLib::Drawing::CompactPixmap::CompactPixmap(), CopySliceFrom(), YSLib::Drawing::CopyTo(), NPL::DecomposeMakefileDepList(), DetectBOM(), YSLib::FetchCommandOutput(), YReader::FetchImage(), NPL::HandleBackslashPrefix(), YSLib::Drawing::ImageMemory::ImageMemory(), YSLib::ImplDeDtor(), ImplRet(), YSLib::Drawing::ImageCodec::Load(), NPL::NPLUnescape(), ystdex::read_uint_be(), ystdex::read_uint_le(), NPL::A1::REPLContext::ReadFrom(), platform::ugetcwd(), ystdex::write_uint_be(), ystdex::write_uint_le() , 以及 platform::FileDescriptor::WriteContent().

## ◆ CheckBOM

bool YSLib::Text::CheckBOM

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

被这些函数引用 CheckBOM(), ImplRet() , 以及 SkipBOM().

## ◆ Encodings

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"}}

编码信息。

自从
  build 307

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

被这些函数引用 YReader::FetchEncodingString() , 以及 YReader::ShlTextReader::SettingSession::SettingSession().

## ◆ str

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

初始值:
{
return CheckBOM(buf, str, _vN - 1)

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

被这些函数引用 ystdex::alph(), ystdex::cpp2017::basic_string< char >::append(), ystdex::cpp2017::basic_string< char >::assign(), CheckBOM(), ystdex::concat(), platform::FAT::LFN::ConvertToAlias(), CopySliceFrom(), ystdex::erase_left(), ystdex::erase_right(), ystdex::exists_substr(), ystdex::extract(), ystdex::extract_line(), ystdex::extract_line_cr(), ystdex::filter_prefix(), ystdex::find_prefix(), ystdex::find_suffix(), ystdex::get_mid(), ystdex::get_quote_mark_nonstrict(), ImplRet(), ystdex::cpp2017::basic_string< char >::insert(), ystdex::path_traits< void >::is_parent(), ystdex::path_traits< void >::is_self(), NPL::A1::Forms::LoadModule_SHBuild(), NPL::A1::Forms::LoadModule_std_io(), NPL::A1::Forms::LoadModule_std_strings(), ystdex::ltrim(), main(), ystdex::make_string_view(), 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(), ystdex::ntctsncpy(), ystdex::openmode_conv(), ystdex::cpp2017::basic_string< char >::operator+=(), ystdex::cpp2017::basic_string< char >::operator=(), ystdex::quote(), ystdex::cpp2017::basic_string< char >::replace(), NPL::A1::REPLContext::REPLContext(), ystdex::restrict_length(), ystdex::rtrim(), YReader::ShlReader::SaveBookmarks(), ystdex::sfmt(), ystdex::ston(), ystdex::string_begin(), ystdex::string_empty(), ystdex::string_end(), ystdex::string_length(), platform::strings::to_pmr_string(), platform::strings::to_std_string(), ystdex::trim(), YReader::ReaderBox::UpdateData(), ystdex::basic_tstring_view< _tChar, _tTraits, 0 >::verify(), ystdex::basic_tstring_view< _tChar, _tTraits, 0 >::verify_term(), ystdex::vsfmt() , 以及 ystdex::write().

CHRLib::CharSet::UTF_8
yconstexpr const Encoding UTF_8(csUTF8)
CHRLib::CharSet::UTF_32LE
yconstexpr const Encoding UTF_32LE(csUTF32LE)
YSLib::Text::CheckBOM
YB_ATTR_nodiscard bool CheckBOM(std::istream &is, const char(&str)[_vN])
Definition: TextFile.h:111
CHRLib::CharSet::UTF_16BE
yconstexpr const Encoding UTF_16BE(csUTF16BE)
CHRLib::CharSet::GBK
yconstexpr const Encoding GBK(csGBK)
CHRLib::CharSet::UTF_32BE
yconstexpr const Encoding UTF_32BE(csUTF32BE)
YSLib::Text::buf
YB_ATTR_nodiscard YB_PURE const char * buf
Definition: TextFile.h:83
YSLib::Text::str
YB_ATTR_nodiscard YB_PURE const char const char * str
Definition: TextFile.h:83
CHRLib::CharSet::UTF_16LE
yconstexpr const Encoding UTF_16LE(csUTF16LE)