19日に更新してた

アフィリエイトはないよ

python で xml のエンコードを自動認識にしてたら、utf-8 を windows-1254 と誤認識していた、理由はわからん。

win11 上の pythonxml を読み込んで検索してゴニョゴニョしていたら、検索されていないものがある。

もともとのデータにはあるのは確認しているので何が原因だと探していったら、表題。*1

import requests
import xml.etree.ElementTree as et

response = requests.get(f'http://hoge/fuga.xml')

response.encoding = response.apparent_encoding

et.fromstring(response.text)

としていたのを

import requests
import xml.etree.ElementTree as et

response = requests.get(f'http://hoge/fuga.xml')

response.encoding = "utf-8"

et.fromstring(response.text)

に変更して取りあえず動くようにしました。

3年位運用していてはじめてのケースで、一週穴開けました。

同じ発行元の同じような xml ファイルをいくつか読み込んでいたのですけれど、何故か一つだけ誤認識していました。なぜそのファイルだけ誤認識しているのかよくわからなかったのですけれど、とりあえず動くからよし!*2

*1:困ったときにはプリントデバグしかできない低機能な人間なので、どこまで動いているのかをプリントデバグして上で検索されていないのを確認して、typeで調べてみた。

*2:現場猫