ElementTreeでEUC_JPとかShift_JISのxmlを読み込む方法
PythonでXMLを操作したい場合はElementTreeってのを使うといいらしいです。
ところが、euc-jpとかsjisでエンコーディングされたテキストをElementTreeに食わせようとすると
xml.etree.ElementTree.ParseError: unknown encoding: line 1, column 30
とかほざきやがります。euc-jpもsjisも知らないらしいです。アメ公ふざけんな。
ここから対処法
<?xml version="1.0" encoding="euc-jp"?>
こんなふうに書かれてると思います。こいつを削除した上で、エンコーディングをUTF8に変えてやります。
import xml.etree.ElementTree as ET lines = xml_string.split("\n") xml_string = "\n".join(lines[1:]) xml_string = xml_string.decode(API.encoding).encode('utf8') et = ET.fromstring(xml_string)
これでおkです。なんか釈然としない解決策ですが、、、