0

LibreOfficeBasicでUFT8でエンコードされたテキストファイルを書きたいのですが。

ここの例http://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Structure_of_Text_Documents#Example:_simple_HTML_exportは、通常のテキスト書き込みの使用法を示しています

 Filename = "c:\temp\text.html"
 FileNo = Freefile
 Open Filename For Output As #FileNo   
 Print #FileNo, "<html><body>"

ドキュメントを段落ごとに、段落内でテキスト要素ごとにトラバースします

 Enum2 = TextElement.createEnumeration
 While Enum2.hasMoreElements
     TextPortion = Enum2.nextElement
     ...
 Wend

調査結果に応じて、ドキュメントの内容はテキストHTMLファイルに書き込まれます。

ただし、Unicode文字は書き込まれません。UFT8文字書き込みを有効にすることは可能ですか?

4

1 に答える 1

1

回避策は、最初にすべての Unicode 文字を NCR に変換することです。その場合、PRINT コマンドが Unicode を処理しないことは問題ではありません。

' search and replace Unicode values with NCRs (Numerical Character References)
' http://en.wikipedia.org/wiki/NCR

Dim oDoc,aFind,aReplace,aRayCount,oFandR

    oDoc = thisComponent

    aFind = Array("Ɛ","ɛ","Ɔ","ɔ","Ŋ","ŋ")
    aReplace = Array("&#x190;","&#x25B;","&#x186;","&#x254;","&#x14A;","&#x14B;")
    index = 0

    oFandR = oDoc.createReplaceDescriptor
    oFandR.SearchCaseSensitive = true
    oFandR.SearchRegularExpression = false
    While index <= uBound(aFind)
        oFandR.setSearchString(aFind(index))
        oFandR.setReplaceString(aReplace(index))
        index = index + 1
        oDoc.ReplaceAll(oFandR)
    Wend
End Sub

から適応

http://forum.openoffice.org/en/forum/viewtopic.php?f=21&t=2437

于 2013-02-20T10:28:09.950 に答える