【ハルシオンブログ】Jsonの書き出し読み込みの時の文字コード
こんにちは。
大坂です。
Jsonファイルの書き出し読み込みの時の文字コードで少しはまったのでメモがてら。
もともとあるJsonファイルを書き出して、読み込みなおしたときの話。
コード。書き出しと、読み込み部分のみ。
読み込み後のJsonへの変換がうまくいかない。
Jsonファイルをいくら比較してみても違いが判らなかったのですが、元ファイルの文字コードと書き出し後の新ファイルの文字コードを確認すると
元ファイル:Shift_JIS
新ファイル:UTF-8(BOM付き)
ふむ。まぁ日本語もないしShift_JISでいいかとEncodingをShift_JISに変更
Encoding部分のみ以下に変更
これでUnity上ではうまくいったのでよかったと思って、しばらくして実機で動かしたら動かない。
System.Text.Encoding で Shift JIS を使いたいで解決もできますが、
なんとなくでUTF-8(BOMなし)にしたらいいじゃないかと思ったので、とりあえずやってみた。
Encoding部分のみ以下に変更
これでUnity上でも実機でも動くようになりました。
プロジェクトにもよると思いますが、自分で書きだしたJsonを読み込んだときにうまく変換できないときは、文字コードも確認してみるといいかもしれませんね。
ではまたノシ
大坂です。
Jsonファイルの書き出し読み込みの時の文字コードで少しはまったのでメモがてら。
もともとあるJsonファイルを書き出して、読み込みなおしたときの話。
コード。書き出しと、読み込み部分のみ。
public static string ReadSaveFile(string fileName)
{
string file = Application.persistentDataPath + "/" + fileName;
Encoding encoding = Encoding.UTF8;
using (StreamReader sr = new StreamReader(file, encoding))
{
return sr.ReadToEnd();
}
}
public static void WriteSaveFile(string fileName, string data)
{
string file = Application.persistentDataPath + "/" + fileName;
Encoding encoding = Encoding.UTF8;
using (StreamWriter sw = new StreamWriter(file, false, encoding))
{
sw.Write(data);
}
}
読み込み後のJsonへの変換がうまくいかない。
Jsonファイルをいくら比較してみても違いが判らなかったのですが、元ファイルの文字コードと書き出し後の新ファイルの文字コードを確認すると
元ファイル:Shift_JIS
新ファイル:UTF-8(BOM付き)
ふむ。まぁ日本語もないしShift_JISでいいかとEncodingをShift_JISに変更
Encoding部分のみ以下に変更
Encoding encoding = Encoding.GetEncoding("Shift_JIS");
これでUnity上ではうまくいったのでよかったと思って、しばらくして実機で動かしたら動かない。
System.Text.Encoding で Shift JIS を使いたいで解決もできますが、
なんとなくでUTF-8(BOMなし)にしたらいいじゃないかと思ったので、とりあえずやってみた。
Encoding部分のみ以下に変更
Encoding encoding = new UTF8Encoding(false);
これでUnity上でも実機でも動くようになりました。
プロジェクトにもよると思いますが、自分で書きだしたJsonを読み込んだときにうまく変換できないときは、文字コードも確認してみるといいかもしれませんね。
ではまたノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】Unityボタンに連打禁止制御を簡単にかけてみる。もっと簡単な方法あるかもしれませんが・・・ | 【ハルシオンブログ】シーンをロードするエディタ拡張 »
コメント
| h o m e |