Как я могу использовать строковый ключ Unicode в объекте Javascript? - PullRequest
8 голосов
/ 13 марта 2012

Я хочу использовать строку Юникода в Object в качестве ключа, что-то вроде:

var t = {"姓名": "naitong"};

все нормально, т ["姓名"] вернуть "naitong"

но

Object.keys({"姓名": "naitong"})

Я получил "", пустая строка

Кто-нибудь знает почему?

Редактирование:

Я устанавливаю firebug и пробую его в консоли, он работает. На самом деле я использую mozrepl, так что я могу редактировать и запускать javascript в emacs. Так что это как-то связано с мозрепл

У меня есть подтверждение, что mozrepl поддерживает только "7-битный безопасный ASCII", чтобы преобразовать Unicode, я должен JSON-кодировать его в Emacs, как:

alert(Object.keys(JSON.parse("{\"\\u59d3\\u540d\":\"naitong\"}")))

Это мой первый вопрос, задаваемый по stackoverflow, и я получил быстрый ответ. Спасибо всем.

1 Ответ

3 голосов
/ 13 марта 2012

У меня отлично работает в консоли firebug:

>>> Object.keys({"姓名": "naitong"})
["姓名"]

Возможно, вы пытаетесь отобразить его на странице, которая использует другую кодировку, которая не содержит этих символов.

...