pythonから出力される日本語(全角文字)をunityのコンソールに出力した際、pythonから返される日本語だけが文字化けしてしまいます。
pythonと、当該pythonファイルを呼び出すc#は共にutf-8なのですが、c#は正しくはUnicode(UTF-8 シグネチャ付き)-コードページ65001です。「シグネチャなし」もありましたが、結果は変わりませんでした。
英語(半角文字)はちゃんと出力されます。
やりたいことは、pythonの日本語出力をunity上のコンソールで正しく表示することです。知恵をお貸しください。お願いします。
すみません。追記のソースコードです。
python import sys playerSelect=str(sys.argv[1]) print( "REPLY[" + playerSelect + "]:" + "日本語" )
C# using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Diagnostics; public class PythonGo : MonoBehaviour { //pythonの場所 private string pyExePath = @"C:\Users\81909\AppData\Local\Programs\Python\Python37\python.exe"; //実行したいスクリプトがある場所 private string pyCodePath = @"C:\Users\81909\Desktop\MeCab\MeCabPython\otameshi.py"; // Start is called before the first frame update private void Start() { //外部プロセス設定 ProcessStartInfo processStartInfo = new ProcessStartInfo() { //実行するpythonファイル FileName = pyExePath, //WorkingDirectory = @cd, //シェルを使うかどうか UseShellExecute = false, //ウィンドゥを開くかどうか CreateNoWindow = true, //テキスト出力をStandardOutputストリームに書き込むかどうか RedirectStandardOutput = true, //実行スクリプト 引数(複数可能) Arguments = pyCodePath + " " + "\"日本語\"" }; //外部プロセス開始 Process process = Process.Start(processStartInfo); //ストリームからの出力を得る StreamReader streamReader = process.StandardOutput; string str = streamReader.ReadLine(); //外部プロセス終了 process.WaitForExit(); process.Close(); //実行 print(str); } }
回答3件
あなたの回答
tips
プレビュー