gpt4 book ai didi

utf-8 - C++ builder - 将 UnicodeString 转换为 UTF-8 编码的字符串

转载 作者:行者123 更新时间:2023-12-04 09:42:27 25 4
gpt4 key购买 nike

我尝试在 C++ 构建器中将 UnicodeString 转换为 UTF-8 编码的字符串。我使用 UnicodeToUtf8() 函数来做到这一点。

char * dest;
UnicodeSring src;
UnicodeToUtf8(dest,256,src.w_str(),src.Length());

但是编译器向我显示了运行时访问冲突消息。我做错了什么?

最佳答案

假设您使用的是 C++Builder 2009 或更高版本(您没有说),并且正在使用 RTL 的 System::UnicodeString类(而不是其他一些第三方 UnicodeString 类),那么有一种更简单的方法来处理这种情况。 C++Builder 还有一个 System::UTF8String类可用(从 C++Builder 6 开始就可用,但直到 C++Builder 2009 才成为真正的 RTL 实现的 UTF-8 字符串类型)。只需分配您的 UnicodeStringUTF8String并让 RTL 为您处理内存分配和数据转换,例如:

UnicodeString src = ...;
UTF8String dest = src; // <-- automatic UTF16-to-UTF8 conversion
// use dest.c_str() and dest.Length() as needed...

关于utf-8 - C++ builder - 将 UnicodeString 转换为 UTF-8 编码的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com