###前提・実現したいこと
talkAPIを使用したpythonプログラムの作成
###発生している問題・エラーメッセージ
コマンドライン引数から日本語を入力する場合、おそらく文字コードの影響で出力結果が変わってしまう。
###該当のソースコード
python code(1)
python
1# -*- coding: utf-8 -*- 2import pya3rt 3 4apikey = "" 5client = pya3rt.TalkClient(apikey) 6 7print(client.talk("おはよう")) 8 9
出力
python C:\Users\user\Desktop\juliustest\talk.py
{'status': 0, 'message': 'ok', 'results': [{'perplexity': 0.07743213382788067, 'reply': 'おはようございます'}]}
python
1 2import pya3rt 3import sys 4 5args = sys.argv 6apikey = "" 7client = pya3rt.TalkClient(apikey) 8print(client.talk(args[0])) 9
python C:\Users\user\Desktop\juliustest\talk.py おはよう
{'status': 0, 'message': 'ok', 'results': [{'perplexity': 0.07521183094611102, 'reply': 'あなたはよくするんですか?'}]}
###現状確認
つまりコマンドライン引数でおはようを入れたときと、オーソドックスな形でおはようを入力した場合で出力が大きく異なってしまう。
このapiはどうやら意味不明な入力があると「あなたはよくするんですか?」などいくつかのワードしか言わなくなるため、その状態に陥っていると思われる。
talkAPIのテキストの部分はUTF-8しか受け付けないらしいためおそらく文字コード関係だと推測中。
諸事情でwindows環境での動作が望ましい。
どうすればコマンドライン引数で日本語を入力して、その値をapiに正常に投げられるかを知りたい。
なにとぞご助力をお願いいたします
###やったこと
chcpでcmdをutf-8に変更
encode('UTF-8')ためしてみる。
###補足情報(言語/FW/ツール等のバージョンなど)
windows10
python3.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。