Я пытаюсь прочитать текстовое хранилище как UTF-8 и разбить его на слайды в PowerPoint. Однако мой текст не работает. Персидский - это разновидность арабских кодов набора.
Function convertANSIPersiande(inputStr As String) As String
Dim n As Integer
Dim i As Integer
Dim inBytes() As Byte
Dim sUnicode As String
' Convert input string to byte array
n = Len(inputStr)
ReDim inBytes(n + 1)
For i = 1 To n
inBytes(i) = AscB(Mid(inputStr, i, 1))
Next
' Convert byte array to unicode using Persian coding
sUnicode = StrConv(inBytes, vbUnicode, &H429)
' remove starting null
iPos = InStr(sUnicode, Chr(0))
If iPos > 0 Then sUnicode = Mid(sUnicode, iPos + 1)
convertANSIPersian2Unicode = sUnicode
End Function
Теперь, когда я пишу
pptTable.Table.Cell(1, Count Mod 2).Shape.TextFrame.TextRange.Text = convertANSIPersian2Unicode(DataLine)
Текст представляет собой бессмысленную смесь арабских символов со специальными символами. У меня Widnows 10 показывает персидский текст.
Любая помощь будет принята с благодарностью.