前提・実現したいこと
Pythonで文字化け防止のために、別のプログラムへ送信する際、UTF-8の10進数にして送信したいためPythonで、bytes(文字列, UTF-8)でエンコードし、エンコードした16進数を10進数にしてから送信したいです。
追記:
python
1msg = "メッセージ" 2user = "名前_ID" 3msg = user + " -> " + msg 4get = str(chr(92)) #バックスラッシュ 5msg = str(bytes(msg, 'UTF-8')).replace(get, " ").replace("b'", "").replace("'", "").replace(" x", "").split() #強引にリスト化 6print(msg) #確認用出力 7n = "" 8for n in msg: #ひとつづつ10進数に変換 9 ints = int(str(n).lstrip('x'), 16) 10 print(ints)
発生している問題・エラーメッセージ
発生している問題については、bytes()でエンコード時、アルファベットやハイフンの文字が、進数に変換されず、そのまま出力されてしまい、10進数に変換する工程で、先程のアルファベットの部分などで、エラーが出てしまいます。
追記:
※超超超雑なのはほんとに許してほしいです。
Bytes変換したあと、確認用出力があると思うんですが、その時点で、アルファベット以外(日本語など)は16進数になっています。ただ、アルファベット(名前_IDの _ID やmsgの ->) がそのままの状態で出力されます。これをどうにか解決して、アルファベットも16進数で出力できるといいんですが、どうにも解決しません。何か方法ないでしょうか?
試したこと
受け取り側で処理を施そうと思ったんですが、受け取り側は言語がJavaScriptのため、アルファベットはもちろんのこと、16進数からデコードすることが出来ません。
回答2件
あなたの回答
tips
プレビュー