strFileSpr = Input(LOF(ffile), #ffile)
В результате латинские символы читаются нормально, а кириллица -
кракозяблами. :(
Интересно что соседний файл в том-же каталоге (тоже XML) читается тем же
способом без проблем.
И еще одно.
В строке куда загоняется содержимое файла, вначале (до первого тега) тоже
идут кракозяблы, хотя при открытии того же файла блокнотом их просто нет!
И последнее.
Если скопировать содержимое файла (Ctrl+C), потом создать новый файл
текстовый и сохранить в него скопированное (а файл переименовать в XML), то
этот замененный файл открывается без проблем (никаких кракозяблов на месте
кириллицы, а все как надо видно).
Но начальный файл откуда я всё читаю мне трогать нельзя - он создается
другой программой.
Что это может быть за чертовщина?
Как прочесть из файла содержимое в том-же виде, в котором оно отображается в
стандартном блокноте?
Почему блокнот показывает всё, а при чтениии программно - кракозяблы (именно
из этого файла, а соседний такой же читается нормально всеми способами)?
Помогите кто может плз.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function ConvertUTF8ToWin(ByVal strUTF8 As String) As String
Dim strWin As String, mumChr As Integer, oneChr As String * 1, lngLenStr As
Long, posI As Long
lngLenStr = Len(strUTF8)
posI = 0
While posI < lngLenStr
posI = posI + 1
oneChr = Mid(strUTF8, posI, 1)
mumChr = Asc(oneChr)
If (mumChr >= 192) And (mumChr <= 255) Then
mumChr = ConvertDec(Hex(Asc(Mid(strUTF8, posI + 1, 1)))) +
((ConvertDec(Hex(mumChr)) - 208) * 64)
mumChr = mumChr + 48
If mumChr = 257 Then mumChr = 184
If mumChr = 177 Then mumChr = 168
oneChr = Chr(mumChr)
strWin = strWin & oneChr
posI = posI + 1
Else
strWin = strWin & oneChr
End If
Wend
ConvertUTF8ToWin = strWin
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function ConvertDec(heximal) As Long
Dim Simvol As String
Dim DesChislo As Long
Dim x As Long
ConvertDec = 0
For x = 1 To Len(heximal)
Simvol = Mid(heximal, x, 1)
If UCase(Simvol) = "A" Then
DesChislo = 10
ElseIf UCase(Simvol) = "B" Then
DesChislo = 11
ElseIf UCase(Simvol) = "C" Then
DesChislo = 12
ElseIf UCase(Simvol) = "D" Then
DesChislo = 13
ElseIf UCase(Simvol) = "E" Then
DesChislo = 14
ElseIf UCase(Simvol) = "F" Then
DesChislo = 15
Else
DesChislo = Val(Simvol)
End If
ConvertDec = ConvertDec + DesChislo * 16 ^ (Len(heximal) - x)
Next x
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"Войтулевич Валентин" <annusd...@yandex.ru> сообщил/сообщила в новостях
следующее: news:ewSS8zQ$HHA....@TK2MSFTNGP02.phx.gbl...