多趣味ブログ

いろいろな事を広く浅く楽しむブログ

UnityでjsonObjectを使うときに日本語文字列がおかしくなるやつの覚書

   

mysql_unity

こちら

http://lo25131.hatenablog.com/entry/2015/10/17/234731

を参考にphpからjson方式で送られたデータを、jsonObjectクラスを使って扱うと日本語表示がおかしくなるのでその対処です。

原因

json内では文字をunicodeで扱っており、その中の¥文字がエスケープされているためにおこる現象です。

イメージ1466

name:以降は日本語文字列なのですがunicode形式でそのまま表示されています。

解決方法

System.Text.RegularExpressions.Regex.Unescapeメソッドを使えば簡単にエスケープ文字を取り除く事ができます。

string decoded_text = System.Text.RegularExpressions.Regex.Unescape(text);

Unescapeメソッドの引数に指定されたstring型のデータのエスケープ文字を外します。

イメージ1467

ちゃんと表示されました。

お疲れさまでした

検索しても対処がなかなか引っかからないので書いてみました。もしかしたらjsonObjectクラスにそういう機能があるかもしれません。

参考にしました

Lotos Labo:UnityとMySQLの連携

 - PHP, Unity, おぼえ書き