ユニコードは「\uXXXX」の形式で表されます。
例えば「都」は「\u90fd」になります。
JSONは文字列をユニコードで表します。
例えばこのようになります。
{
"\u90fd\u9053\u5e9c\u770c":"\u5317\u6d77\u9053",
"\u59d3":"\u77f3\u5ddd",
"\u540d":"\u7ae0",
"\u6027\u5225":"\u7537"
}
"\u90fd\u9053\u5e9c\u770c":"\u5317\u6d77\u9053",
"\u59d3":"\u77f3\u5ddd",
"\u540d":"\u7ae0",
"\u6027\u5225":"\u7537"
}
このユニコードを通常の文字に変換(デコード)するJavaScriptの関数を考えました。
function decode_unicode(src) {
// 変数宣言
const regex = /\\u.{4}/ig;
const replacementFunction = (all) => {
// Unicodeエスケープシーケンスを16進数に変換
const hexCode = all.replace("\\u", "0x");
// 16進数コードから文字を取得
return String.fromCharCode(parseInt(hexCode, 16));
};
// 正規表現でマッチした部分文字列を置換
const result = src.replace(regex, replacementFunction);
// 結果を返す
return result;
}
// 変数宣言
const regex = /\\u.{4}/ig;
const replacementFunction = (all) => {
// Unicodeエスケープシーケンスを16進数に変換
const hexCode = all.replace("\\u", "0x");
// 16進数コードから文字を取得
return String.fromCharCode(parseInt(hexCode, 16));
};
// 正規表現でマッチした部分文字列を置換
const result = src.replace(regex, replacementFunction);
// 結果を返す
return result;
}
これを使うと先程の文字列が次のようになります。
{
"都道府県":"北海道",
"姓":"石川",
"名":"章",
"性別":"男"
}
"都道府県":"北海道",
"姓":"石川",
"名":"章",
"性別":"男"
}
次のページで試すことができます。
コメント