BytesOf - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ BytesOf


把字符串按照系统默认编码转成字节数组

头文件:#include
命名空间:System::Sysutils
函数原型:

System::DynamicArray __fastcall BytesOf(const System::UnicodeString Val);
System::DynamicArray __fastcall BytesOf(const System::WideChar Val);
System::DynamicArray __fastcall BytesOf(const System::RawByteString Val);
System::DynamicArray __fastcall BytesOf(const void * Val, const int Len);
System::DynamicArray __fastcall BytesOf(const char Val);

参数:

  • Val:字符或字符串
  • Len:字符串长度

返回值:

  • 把 Val 按照系统默认编码转成的字节数组;
    • 参数 Val 为 UnicodeString 类型时,把 Val 转成系统默认编码 (ANSI 或 UTF-8) 的字符串,再把转换之后的字符串逐个字节复制到返回值数组里面;
    • 参数 Val 为 WideChar 类型时;把只含有一个 Val 的字符串转成系统默认编码 (ANSI 或 UTF-8) 的字符串,再把转换之后的字符串逐个字节复制到返回值数组里面;
    • 参数 Val 为 RawByteString 类型时,直接把 Val 里面的数组复制到返回值字节数组里面,不经过编码转换;
    • 参数 Val 为 void * 类型时,从 Val 指向位置开始复制 Len 个字节到返回值字节数组里面,不经过编码转换;
    • 参数 Val 为 char 类型时,返回的数组只有 1 个自己,就是 Val 本身,不经过编码转换;
  • 可以认为是 AnsiString s = Val; 返回 s.c_str() 包含 s.Length() 个字节;
  • BytesOf 内部通过调用 TEncoding::Unicode->Default(Value); 来实现的;
  • 系统默认的编码,UTF-8 或 ANSI (请参考《C++ Builder 的字符串类型、字符类型、字符编码》)。

相关:

  • System::Sysutils::BytesOf
  • System::Sysutils::WideBytesOf
  • System::Sysutils::PlatformBytesOf
  • System::Sysutils::StringOf
  • System::Sysutils::WideStringOf
  • System::Sysutils::PlatformStringOf
  • System::Sysutils::ByteLength
  • System::Sysutils::CharLength
  • System::Sysutils::StrCharLength
  • System::Sysutils::AnsiLastChar
  • System::Sysutils::AnsiStrLastChar
  • System::Sysutils::AnsiPos
  • System::Sysutils::AnsiStrPos
  • System::Sysutils::AnsiStrScan
  • System::Sysutils::AnsiStrRScan
  • System::Sysutils::CharToElementIndex
  • System::Sysutils::CharToElementLen
  • System::Sysutils::ElementToCharIndex
  • System::Sysutils::ElementToCharLen
  • System::Sysutils::TEncoding
  • System::Sysutils
  • std::mblen
  • std::_mbstrlen
  • std::strlen, std::_fstrlen, std::_tcslen, std::wcslen

C++ Builder 参考手册 ➙ System::Sysutils ➙ BytesOf

你可能感兴趣的:(BytesOf - C++ Builder)