[oodisc] API и вставка русского языка программно

Ruslan Spivak alienoid на is.lg.ua
Пт Мар 7 12:24:18 MSK 2003


Здравствуйте!

Нужна Ваша помощь, Столкнулся с проблемой и самому не получается решить.
У меня есть документ с русским языком, в нем есть некоторые переменные 
%%fullname%%, которые мне необходимо программно заменить на 
соответсвующие русские слова, т.е %%fullname%% на Пупкин В.В.
Я использую PyUNO, поиск и замена на английские слова не вызывает 
проблем, но мне необходимо вставить русский текст, а вот он после 
вставки в документ выглядит как ????????? Не знаю что делать.

Вот мой код

xStorable = None
     try:
          rUNO = UNO()
          properties =  [ {
                    'Name'  : 'Hidden',
                    'Value' : rUNO.newBoolean(1)
                    }]

          rProperties = rUNO.newPropertyValues ( properties )
          xStorable = rUNO.new ("file://%s" % filename,
                                propertyValues=rProperties )[0]

                properties = [ { 'Name' : 'FilterName',
                                 'Value' :
                                 'swriter: StarOffice XML Writer)' },
                               { 'Name' : 'Overwrite',
                                 'Value' : rUNO.newBoolean(1) }
                               ]

                rProperties = rUNO.newPropertyValues ( properties )

                # search and replace
                searchDesc = xStorable.createSearchDescriptor()[0]
                searchDesc.setSearchString("%%fullname%%")
                foundList = xStorable.findAll(searchDesc)[0]
                for i in range(foundList.Count):
                    res = foundList.getByIndex(i)[0]
                    # sourceString is string in russian
                    #(already in utf-8), here i use direct conversion but
                    #the result is the same string
                    replaceStr =  unicode(sourceString,
                                          'UTF-8').encode('UTF-8')
                    res.setString(replaceStr)

                xStorable.storeAsURL ("file://%s" % filename, rProperties )
         except:
                pass


В результате получаю файл Agreement.sxw, весь старый русский текст виден 
нормально, а замененное слово видно как ????????????

Не знаю как быть, очень нужно решить эту проблему.
Спасибо заранее за помощь

Руслан




Подробная информация о списке рассылки Oo-discuss