C++ Builder 参考手册 ➙ System::Sysutils ➙ WideBytesOf
字符串转为字节数组,采用 UTF-16 编码
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
System::DynamicArray<System::Byte> __fastcall WideBytesOf(const System::UnicodeString Value);
参数:
- Value:字符串;
返回值:
- 把 Value 按照 UTF-16 编码转成的字节数组;
- WideBytesOf 、PlatformBytesOf 和 BytesOf 的区别:
• WideBytesOf 和 PlatformBytesOf 一样,函数内部使用 TEncoding.Unicode.GetBytes(Value) 获取字节数组,使用 UTF-16 编码;
• 函数 BytesOf 内部通过调用 TEncoding::Unicode->Default(Value) 来实现的,使用的系统默认编码,UTF-8 或 ANSI (请参考《C++ Builder 的字符串类型、字符类型、字符编码》)。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
UnicodeString s = L"Hello玄坴";
System::DynamicArray<System::Byte> a = Sysutils::WideBytesOf(s);
UnicodeString t;
for(int i=0; i<a.Length; i++)
t.cat_sprintf(L"%02X ", a[i]);
Memo1->Lines->Add(t);
}
运行结果:
运行结果相关:
- 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 ➙ WideBytesOf
网友评论