В настоящее время у меня есть куча файлов XML, и, к сожалению, наш скрипт создал одно из полей с неправильным кодом символа.
<App_Data App="x" Name="Medium" Value="Forjado e apoiado pela máquina de propaganda, foi o mito do profeta que tinha aparentemente vindo do nada para fazer história. A verdadeira história de sua família não tinha lugar nesta imagem..." />
<App_Data App="x" Name="Short" Value="Forjado e apoiado pela máquina de propaganda, foi o mito do profeta que tinha aparentemente vindo do nada para fazer história. A verdadeira história de sua famÃlia não tinha lugar nesta imagem..." />
Некоторые из моих файлов верны, поэтому мне пришлось бы открывать один за другим, чтобы решить, будет ли использоваться сценарий, и я не думаю, что потребуется серьезный уровень автоматизации в сценарии, чтобы проверить необходимость преобразование.
Я придумал только приведенный ниже сценарий, который на самом деле представляет собой лоскутное одеяло из кодов из Интернета...
texto = editor.findText(FINDOPTION.WHOLEWORD | FINDOPTION.MATCHCASE, 0, editor.getLength(), "Short")
pos = editor.gotoPos(texto[0])
ISOLine = editor.lineCopy()
editor.addText(ISOLine.encode('utf8'))
firstLine = editor.getLine(0)
firstLineUnicode = firstLine.decode('latin-1')
editor.replaceWholeLine(firstLineUnicode.encode('latin-1')
Editor.paste()
...Но это не работает. Кажется, я не могу выбрать целую строку и связать ее с переменной, но, поскольку я новичок, в будущем могут возникнуть другие проблемы.
Файлы XML имеют символьный код ISO-8859-1, но эта часть, похоже, получена из источника UTF-8, и символы были интерпретированы только как ISO-8859-1, а не преобразованы.
Я могу исправить это вручную, скопировав всю эту строку, создав новый файл в Notepad++ в формате ISO-8859-1, вставив строку, а затем используя меню «Формат > Кодировать в UTF-8», чтобы она выглядела правильно. Затем я могу выбрать его и скопировать обратно в исходный файл XML.
Однако это не очень практично, поэтому мне было интересно, есть ли лучший способ со скриптом Python.