質問: sikulixで言語はパイソンをつかっているのですが、type()に普通に日本語を入れても反映されません。 文字化けするというわけではなく、文字を打ってほしいとこに文字が現れません。 unicode("書きたい文字", UTF-8)で変換したり、type(u"書きたい文字")でやっても反映されませんでした。 ただ、ローマ字でtype("kakitamoji")のように打つと反映されました。 日本語でも反映されるにはどうすばいいでしょうか?
回答: sikulix における`type`メソッドはキーボードによる入力(タイピング)をシミュレートするものなので、UTF-8等でエンコードした文字列を入力しても正しく処理されません。 `type("kakitamoji")`とのコードは、あたかもキーボードで "kakitamoji" と1文字ずつタイプしたように動作します。キーボードでの日本語入力は一般にIMEを経由するので、直接、エンコードされた日本語文字列を`type`メソッドで処理できません。そんな場合は代わりに`paste`メソッドを使い、クリップボードからペーストするようにします。以下はWindows のメモ帳を開いて、UNICODEの文字列 "UNICODE/日本語テキストで入力" をメモ帳に貼り付けるコード例です。(SikulixIDE 1.1.1上で動作) ``` App.open(r"C:\windows\notepad.exe") wait(2) s = u"UNICODE/日本語テキストで入力" paste(s + "\r\n") ``` 以前にも少し関連する質問で回答させていただいたことがあるので、よろしければ参考にしてみてください。 sikuliで開いたメモ帳に、変数の内容を貼り付けたい