とっても難しい円記号問題
はじめに、円記号とバックスラッシュの問題についてはWikipediaをご覧ください。
またはこの記事もわかりやすいです。
で、UNITYでスクリプトからstringの改行をする場合は「/n(バックスラッシュとn)」と打ちますが、例えばローカルファイルからUNITYへ文字データを渡すようなことをすると、なぜかバックスラッシュが円記号に変換されてしまい、
一行目
二行目
と打ったつもりでも、
一行目\n二行目
と表示されてしまうことがあります。
解
これを解決するためには、stringを呼ぶ際にこのような文字列置換を噛ませることで、間違いなく「\n」を「改行」にすることができます。
if (string.Contains("\\n")) string = string.Replace("\\n", Environment.NewLine); else if (string.Contains("\\n")) string = string.Replace("\\n", Environment.NewLine);
if と else if で同じことを書いているように見えますか? 私は一つ目の if を円記号、else if をバックスラッシュで検索するようなコードを書いているつもりですが、記事ではどちらも同じように見えているだけです。いや、いずれか一つだけでいいのかもしれません。もう何もわかりません。早く寝たいです。
円記号問題って難しいですね。私は全く理解できてないです。動けばいいのです。