実現したいこと
私は、ラズパイpicoW を用いた、
「センサーから反応があったらLINE APIよりメッセージを送る」
というプログラムを作成しましたが、
「その文章を日本語にしてほしい」という問題の解決ができない状態です
import machine,time, os, sys, network, urequests, codecs from utime import sleep from ssid import SSID, PASS(家のwifiのssid) wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(SSID, PASS) line_header = { 'Content-Type' : 'application/x-www-form-urlencoded', 'Authorization': 'Bearer' + ' ' + 'XXXLINE APIのコードXX' } line_message = 'message=' + 'aiueo_あいうえお' response = urequests.post('https://notify-api.line.me/api/notify', headers = line_header, data = line_message) response.close() print(line_message)
発生している問題・分からないこと
調べた結果、LINEAPIは「utf_8」という文字でしか動作しないこと、
raspberry pi pico W はデフォルトで「utf_8」であるが、新たに設定をし直さなければならないと判断しました
情報源は以下になります
https://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html
raspberry pi pico W は素の状態ではcodecsがimport できないので、
thonnyのパッケージを追加でmicropython-codecsをインポート
そのうえで
https://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html
より、サンプルプログラムを流しました
以下のようなエラーが発生します
>>> %Run -c $EDITOR_CONTENT Traceback (most recent call last): File "<stdin>", line 6, in <module> AttributeError: 'module' object has no attribute 'getwriter' >>>
該当のソースコード
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import codecs sys.stdout = codecs.getwriter('utf_8')(sys.stdout) print('line_message')
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
どこを調べても、
「getwiter」を入力したらエラーが出た、だなんて結果は出ません
サンプルプログラムをそのままコピペしても動かないのであれば、それは環境のせいだと思うのですが、
thonnyのパッケージを追加の中には「getwriter」というものはありません
補足
そもそも、LINE APIで日本語入力する方法は、
「文字をutf_8に変換する」で会っているでしょうか?
全部が全部文字化けされることではなく、最初の三文字だけはちゃんと日本語が出力されるのですが