0

ユーザーが入力したデータを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レポートに文字「ä」を含めたいのですが、これを実現する方法でエンコードすることができないようです。

私は潜在的にいくつかの明白なエンコード/デコードポイントを見逃していますが、一日の多くの間これに苦労しているので、どんな助けもありがたいです:)

4

1 に答える 1

2

あなたが探してcodecs.open()いる。

于 2012-06-06T04:35:59.927 に答える