Тема: VBS: Перекодировка текста из UTF-8
Коллеги, приветствую !
Столкнулся со следующей проблемой, в процессе выполнения SQL запроса к Firebird'овской базе получаю следующий ответ, содержащий русские символы в виде кракозябров:
"CZE Р_Р_Р_Р°С?Р° IND 1-5"
"CZE Р'С<Р_Р°С?Р° РўР_"
"SPA Р'С<Р_Р°С?Р° РўР_"
"CZE Р_Р_Р_Р°С?Р° IND 1-5"
Сохранил его в текстовый файл и открыл в Notepad++, чтобы узнать кодировку, выдало "UTF-8 without BOM"
пробовал перекодировать полученный текст в читаемый вид следующим кодом:
Set cn = CreateObject ("ADODB.Connection")
cn.Open "Provider=LCPI.IBProvider.3;Data Source=C:\VS2010\firebird\AKIS_newDB\akisdb.fdb;User Id=SYSDBA;password=masterkey;ctype=none;auto_commit=true"
Set rs = cn.execute("select Q_MENU.MNU_NAME from Q_FIFO , Q_MENU where Q_FIFO.FHI_CLINR is null and Q_FIFO.FHI_QNR=Q_MENU.MNU_QNR")
do while not rs.EOF
wscript.echo converter(rs.fields(0).Value)
rs.MoveNext
loop
rs.close
cn.close
function converter(strinput)
adReadAll = -1
adTypeText = 2
Set objStream = CreateObject("ADODB.Stream")
objStream.Open()
objStream.Type = adTypeText
objStream.Charset = "utf-8"
objStream.WriteText(strinput)
objStream.Flush()
objStream.Position = 0
objStream.Charset = "windows-1251"
converter = objStream.ReadText(adReadAll)
objStream.Close()
end function
Не помогает
- кракозябры
А должно получиться следующее
"CZE Подача IND 1-5"
"CZE Выдача ТА"
"SPA Выдача ТА"
"CZE Подача IND 1-5"
Need help !!!




