Страница: 1 |
Страница: 1 |
Вопрос: Как перекодировать текст из utf-8 в windows.
Добавлено: 29.07.08 10:15
Автор вопроса: Abiron
Очень нужно получая текст в юникоде работать с ним на VB и в конечном итоге записать его в файл в кодировке windows. Много что посмотрел, не знаю, как это сделать...
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #1
Добавлено: 29.07.08 12:22
http://www.vbnet.ru/forum/show.aspx?id=81606&page=1
есть и activex - контролы. Например - Chilkat Charset....
Номер ответа: 2
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #2
Добавлено: 29.07.08 19:26
http://www.vbnet.ru/forum/show.aspx?id=147004 #4
а до ума эту хрень довести никак руки не доходят
Номер ответа: 3
Автор ответа:
Abiron
Вопросов: 30
Ответов: 62
Профиль | | #3
Добавлено: 29.07.08 19:46
Все посмотрел. Ничего не идет. Если кому не лень, сделайте работающий исходник и скиньте на nettorgtwin@bk.ru а то как то ничего не понимаю и ничего не идет по функциям и кускам кода.
Номер ответа: 4
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #4
Добавлено: 29.07.08 19:54
- как то очень быстро у тебя руки опустились
Номер ответа: 5
Автор ответа:
Abiron
Вопросов: 30
Ответов: 62
Профиль | | #5
Добавлено: 29.07.08 19:57
Не очень. Я этим вопросом уже пятый день занимаюсь.
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 29.07.08 23:34
Private Const CP_UTF8 = 65001
Private Const CP_ACP = 0
Private Declare Function GetACP Lib "Kernel32" () As Long
Private Declare Function WideCharToMultiByte Lib "Kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, lpUsedDefaultChar As Long) As Long
Private Declare Function MultiByteToWideChar Lib "Kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Function WToA(ByVal st As String, Optional ByVal cpg As Long = -1, Optional lFlags As Long = 0) As String
Dim stBuffer As String
Dim cwch As Long
Dim pwz As Long
Dim pwzBuffer As Long
Dim lpUsedDefaultChar As Long
If cpg = -1 Then cpg = GetACP()
pwz = StrPtr(st)
cwch = WideCharToMultiByte(cpg, lFlags, pwz, -1, 0&, 0&, ByVal 0&, ByVal 0&
stBuffer = String$(cwch + 1, vbNullChar)
pwzBuffer = StrPtr(stBuffer)
cwch = WideCharToMultiByte(cpg, lFlags, pwz, -1, pwzBuffer, Len(stBuffer), ByVal 0&, ByVal 0&
WToA = Left$(stBuffer, cwch - 1)
End Function
Private Function AToW(ByVal st As String, Optional ByVal cpg As Long = -1, Optional lFlags As Long = 0) As String
Dim stBuffer As String
Dim cwch As Long
Dim pwz As Long
Dim pwzBuffer As Long
If cpg = -1 Then cpg = GetACP()
pwz = StrPtr(st)
cwch = MultiByteToWideChar(cpg, lFlags, pwz, -1, 0&, 0&
stBuffer = String$(cwch + 1, vbNullChar)
pwzBuffer = StrPtr(stBuffer)
cwch = MultiByteToWideChar(cpg, lFlags, pwz, -1, pwzBuffer, Len(stBuffer))
AToW = Left$(stBuffer, cwch - 1)
End Function
Public Function EncodeUTF8(ByVal cnvUni As String) As String
If cnvUni = vbNullString Then Exit Function
EncodeUTF8 = StrConv(WToA(cnvUni, CP_UTF8), vbUnicode)
End Function
Public Function DecodeUTF8(ByVal cnvUni As String) As String
If cnvUni = vbNullString Then Exit Function
 ecodeUTF8 = AToW(WToA(cnvUni, CP_ACP), CP_UTF8)
End Function