0

我想用 LibreOffice Basic 编写一个 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 回答