我如何将String对象转换为UTF8CHAR指针?

时间:2012-12-13 17:27:17

标签: c++ function

我正在整合一个新系统,旧系统在方法中有一个char *。现在有一个UTF8CHAR *代替。

我有一个字符串对象:

string data("test set");

并希望将其传递给函数:

my_method(UTF8CHAR* text, ENUM extra, newStruct &item);

我的第一次尝试是:

newStruct param("hi", 0,0);
my_method(data.c_str(), extra::OPEN,param);

我没有得到错误,而是获得了EXC_BAD_ACCESS

1 个答案:

答案 0 :(得分:1)

stringchar数组各包含一个字节序列。它取决于所讨论的库,但常识表明UTF8CHAR数组也是一个字节序列,并且增加了解某些字节组合描述某些unicode代码点,而某些其他字节组合是非法的。所以每个utf8 char数组都是一个char数组,但不一定是反过来的。由于区别不是编译器可以检查的东西,除了确保正确的数据类型处理,传递char指针应该工作。如果没有,可能还有其他问题,我们无法从您发布的代码中做出决定。