• 締切済み

JSONでの日本語(マルチバイト)の扱い方

JSONで日本語を扱う場合、 "\u306f\u3066\u306a"のようにユニバーサルキャラクタ名で表す事が多いようなのですが、どういった理由があるのでしょうか? RFCを見ると、UTF-8に対応している様ですし、直接日本語を埋め込んでも良いように思うのですが… どうぞ宜しくお願い致します。

みんなの回答

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

エスケープすれば、JSON を読み込むHTML文書の文字コードに合わせる必要がなくなります。 特に広く利用される「公開API」とする場合は、特定の文字コードに依存するフォーマットにはしないと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

かんじをにゅうりょくできないかんきょうから、かんじをにゅうりょくするしゅだんのひとつとして。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JSONでの日本語を出力する際のエンコードについて

    Javaでorg.json.simpleを使ってJSON形式のデータを出力しようとしています。 公開されているAPIなどをみると、日本語の部分は"\uxxxx"のように エスケープされているかと思うのですが、 下記の方法ではそのまま日本語で"あいうえお"と表示されてしまいます。 import org.json.simple.JSONObject; JSONObject obj = new JSONObject(); obj.put("name", "あいうえお"); System.out.print(obj.toString()); JSONで日本語を扱う場合は必ずエスケープしなくてはならないでしょうか? この場合はどのようにしたらエスケープできるでしょうか?

  • MySQLの日本語文字化け対策

    Mysqlでの日本語文字化け対策がうまくいかなくて困っています。 いくつもの参考ページを検索で探し、実行してみたのですが、どうにもうまくいきません。 insert into tbl values('あああ');のように、cmdに打っている時点では日本語は表示できています。 しかしselectで呼び出すと、'?f?u???'といった表記に化けてしまいます。 phpMyAdminでの表記も同様に化けます。 下記に環境と施した対策を記しますので、原因がわかる方のアドバイスをお待ちしております。 window7 64bit Xampp1.8.0 Apache 2.4.2 MySQL 5.5.25a PHP 5.4.4 phpMyAdmin 3.5.2 参考記事 http://blog.livedoor.jp/ryo511-web/archives/4915440.html cmd上でshow variables like "char%"でキャラクタセットを確認したところ character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_results utf8 character_set_server utf8 character_set_system utf8 と、表示上は意図したとおり、utf-8になっているようです。

  • JSON形式の文字データの変換方法で悩んでいます。

    JSON形式の文字データの変換方法で悩んでいます。 (WEB上のAPIを叩いて取得してきたデータです) 例えば、、、 \u30aa\u30c1\u30b2\u30fc\u30c6\u30ce\u30bb\u30eb この様な文字列です。 他のAPIで得られた文字データの場合、、、 Encode::from_to($name ,'utf8','sjis'); で問題なく日本語に変換できていたのですが、この形式の場合、全く変換されません。 上記の様な文字コードを日本語に変換するには、どうしたらよいのでしょう? 助言いただけると幸いです。

    • ベストアンサー
    • Perl
  • AjaxでJSONを受信すると、文字化けする

    お世話になっております。 ajaxでJSONを受信して文字列に変換すると、日本語部分のみ文字化け("?"に変換)されてしまいます。色々と調べているのですが原因が分からず、恐れ入りますがご教示のほどお願い致します。 尚、日本語部分のメッセージには個別に設定したBean Validationのアノテーションのメッセージが 入ります。 $.ajax({ type: 'GET', url: url, dataType: 'json', data: params, contentType: "application/json; charset=utf-8" }) .done(function(params, dataType){ alert($.stringify(params)); } ---alert($.stringify(params))の内容--- {"contents":[{"id":"a","message":"123abc???"}} (送信元では【"message":"123abcあいう"】と設定)

    • ベストアンサー
    • AJAX
  • JSONエンコードの際の問題

    PHP5.2.6とJavascriptの間で、JSONを用いてデータをやり取りしていますが、JSONエンコードの際に文字列がUnicodeエスケープ(\u3000のような形)されてしまい、データサイズが肥大化して困っています。 本来3バイトで良いところを6バイト消費していますので、全体としては約2倍弱のサイズのデータをやり取りすることとなってしまいます。 UTF-8のまま出力するライブラリ等はありませんでしょうか? php-jsonやJsphon等を試してみたのですが、いずれもUnicodeエスケープされたjson文字列が出力されてしまいました。 宜しくお願い致します。

    • 締切済み
    • PHP
  • ディレクトリ名を日本語URLにするには?

    MTでブログを運用しています。 トップドメインの日本語URLではなく ディレクトリを切る際に日本語URL化したいと思っています。 カテゴリ名やエントリー名を日本語化するのではなく 単にディレクトリ名だけを日本語化する方法を探しています。 http://abc.com/ディレクトリ名を日本語化するには?/   ↓(ディレクトリをUTFエンコードすると以下のようなURL) http://abc.com/%83f%83B%83%8c%83N%83g%83%8a%96%bc%82%f0%93%fa%96%7b%8c%ea%89%bb%82%b7%82%e9%82%c9%82%cd%81H/ サーバー上で新規ディレクトリを作る際に UTFエンコードした名称をつけるだけはサイトは表示されませんでした。 どなたか方法をご存知の方がおられましたらどうぞよろしくお願いします。

  • ポルトガル語と日本語の混在

    MySQL 5 で、ポルトガル語と日本語が混在したデータを扱いたいのですが、キャラクタセットは UTF8 でいいのでしょうか? データベース、テーブル、フィールドのすべてをデフォルトをUTF8にしたのですが、ポルトガル語の一部と、日本語が文字化けしてしまいます。 日本語のデータベースもありますので、 MySQLのデフォルトは eucjpms を使用しています。 なかなか上手くできません。よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Windows10の日本語について

    Windows10をインストールしてユーザ設定などを行うのですが、自然と日本語でユーザ名(ログイン名)を指定する方向に誘導されたことがあります。しかし、Windowsの日本語ってまだshift JISでUTF8にはなっていないと思います。そうしますと、世界で利用されているソフトで一部日本語利用可みたいな感じのソフトだとトラブルが生じるということになる、そういう理解でいいのでしょうか。具体的なソフト名は書きませんが、まだまだそういうことなのだ、ということでやはり半角英数でやるべきだということです。いや、それともWindowsの日本語は完全に国際化に対応したということになるのでしょうか。 個別問題ではなく包括的な理解としてお尋ねしているのですが。私は国際化非対応という前提でやるものだと思っていますが。

  • Pythonでの日本語処理

    Pythonでの日本語処理 Windows環境でPythonを勉強し始めたところです(本当に始めたばかりです)。 エンコードは「utf-8」が推奨されているようなので、 # coding: utf-8 print u'全角でも' print u'半角でも' print u'ともかくutf-8でエンコードして、且つ頭にuを付ける。' というような書き方で統一してしまおうと思っているのですが、 Pythonに詳しい方のご意見をいただきたく。 よろしくお願いいたします。

  • mySQLの日本語表示について

    mySQLの日本語表示について質問があります。 OSがvistaであるPCにxampp1.7.7をインストールし、必要なセットアップをすませました。 そこで、コマンドラインより適当なデータベース(workdb)に create table tab1(number int(8) unique not null, city varchar(10), country varchar(10)); として、テーブル(tab1)を作成し、 insert into tab1 values(1, '東京', '日本'); とtab1にデータを挿入し、 select * from tab1; で、tab1の内容を表示したところ +-------+----+-------+ | number | city | country | +-------+----+-------+ |     1|   |      | +-------+----+-------+ と、日本語で挿入した物だけ表示されませんでした。 status より、charactersetを確認したところ Server,Db,Client,Conn 全て utf8 となっていました。 また、 show variables like "char%"; より、Variable_nameも確認したところ character_set_client,character_set_connection,character_set_database,character_set_result,character_set_server,character_set_system は全てutf8になっており、character_set_filesystemのみbinary となっていました。 この『日本語のみ表示されない』原因はどういったものが考えられるのでしょうか? character_set_filesystem が原因なのでしょうか? 原因をネットで探してみましたが、『日本語が文字化けする』といったものばかりがヒットし、また上記のVariable_nameがutf8になっていないといった内容が多く、自分に生かす事ができませんでした。 わかる方がいらっしゃればお手数おかけして大変申し訳ないのですが、是非ご教授お願いしたいと思っています。 よろしくお願いいたします。 質問に必要な情報が足りていない場合、教えていただければと思います。