使用具有UTF-16属性名的javascript对象

使用具有UTF-16属性名的javascript对象,javascript,c++,ajax,utf-8,yajl,Javascript,C++,Ajax,Utf 8,Yajl,我正在调用一个返回UTF-16 json数据的服务。 我的问题是,如果JSON对象有UTF-16字符串作为属性名,有没有一种简单的方法来引用这些属性 例如,以下是调用JSON.stringify后响应数据的外观: "{"C\u0000o\u0000n\u0000t\u0000e\u0000n\u0000t\u0000s\u0000":{ ... 在我的代码中,我想做一些类似于数据['Contents']的事情。有没有一种简单的方法可以避免使用unicode转义序列硬编码字符串 更新:更改为指示

我正在调用一个返回UTF-16 json数据的服务。 我的问题是,如果JSON对象有UTF-16字符串作为属性名,有没有一种简单的方法来引用这些属性

例如,以下是调用JSON.stringify后响应数据的外观:

"{"C\u0000o\u0000n\u0000t\u0000e\u0000n\u0000t\u0000s\u0000":{ ...
在我的代码中,我想做一些类似于
数据['Contents']
的事情。有没有一种简单的方法可以避免使用unicode转义序列硬编码字符串

更新:更改为指示字符串为UTF-16

下面是生成JSON输出的调用示例(Visual C++):

wchar_t* str = _T("Contents");
yajl_gen_string(g, (unsigned char*)str, wcslen(str) * sizeof(TCHAR));

这看起来像UTF-16 LE,而不是UTF-8…它实际上看起来像UTF-16 LE,但不管它编码什么,都假设它是UTF-8。大错特错!它是否只包含
\u0000
?这是一个复杂的结构吗?[aka Objects in Objects?]感谢您的澄清。可能是UTF-16。来自服务器的原始字符串是wchar\u t*
\NULL
字符,这会导致许多JS引擎中的无效字符串。你能给我们看看生成这个的代码吗?