C++ Builder 参考手册 ➙ System::Sysutils ➙ BytesOf
把字符串按照系统默认编码转成字节数组
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
System::DynamicArray<System::Byte> __fastcall BytesOf(const System::UnicodeString Val);
System::DynamicArray<System::Byte> __fastcall BytesOf(const System::WideChar Val);
System::DynamicArray<System::Byte> __fastcall BytesOf(const System::RawByteString Val);
System::DynamicArray<System::Byte> __fastcall BytesOf(const void * Val, const int Len);
System::DynamicArray<System::Byte> __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
- <cstdlib>
- std::strlen, std::_fstrlen, std::_tcslen, std::wcslen
- <cstring>
C++ Builder 参考手册 ➙ System::Sysutils ➙ BytesOf