ユーザーが入力したデータをXMLフォームとしてキャプチャするSharePointライブラリがあります。この形式はUTF-8としてエンコードされますが、ユーザーが入力した文字の一部はASCIIではなく(たとえば、フランス語、スペイン語、マオリ語の単語)、UTF-8として保存されません。
このようなデータの例を次に示します(省略形、メタデータなし)。
<?xml version="1.0" encoding="utf-8"?>
<my:myFields xmlns:my="http://schemas.microsoft.com/etc...">
<my:title>Te whakaako i Te Reo Mäori -- Teaching Te Reo Mäori</my:title>
ElementTree(xml.etree.ElementTree)の解析関数を使用して、この情報をレポートにコンパイルし、CSVとしてエクスポートして、Excelスプレッドシートで送信しています。そのため、UTF-8文字とすべてのユーザー入力の両方をExcel(cp1252?)で動作する単一の形式に変換したいと思います。
import xml.etree.ElementTree as ET
course = ET.parse(os.path.join(path, filename))
すべての計算結果をファイルに書き込むと、次のエラーが発生します(上記のXMLの例の場合)。
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 48: ordinal not in range(128)
データを見ると、タグのテキストが「ä」の代わりに「\xe4」を使用してUnicodeに変換されていることがわかりますu'Te whakaako i Te Reo M\xe4ori -- Teaching Te Reo M\xe4ori'
。
Excelレポートに文字「ä」を含めたいのですが、これを実現する方法でエンコードすることができないようです。
私は潜在的にいくつかの明白なエンコード/デコードポイントを見逃していますが、一日の多くの間これに苦労しているので、どんな助けもありがたいです:)