Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Кодировка Добавлено: 08.10.04 10:39  

Автор вопроса:  RomaVis | ICQ: 266287351 
Кто знает, как перекодироват из КOI8-R в Windows-1251, и обратно ???????

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #1
Добавлено: 14.10.04 22:07

Option Explicit

'===================Перекодировка символов===========
Public Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, _
ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long
Public Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long) As Long

Public Const MB_PRECOMPOSED = &H1 ' use precomposed chars

'=============Функция перекодировки===================
Public Function Convert(ByVal strSrc As String, ByVal nFromCP As Long, ByVal nToCP As Long) As String
Dim nLen As Long
Dim strDst As String
Dim strRet As String
Dim nRet As Long
nLen = Len(strSrc)
strDst = String(nLen * 2, Chr(0))
strRet = String(nLen * 2, Chr(0))
nRet = MultiByteToWideChar(nFromCP, MB_PRECOMPOSED, strSrc, nLen, strDst, nLen)
nRet = WideCharToMultiByte(nToCP, 0, strDst, nRet, strRet, nLen * 2, ByVal 0, 0)
Convert = Left(strRet, nRet)
End Function


Пример
Имеем, допустим, TextBox. В нем текст в кодировке KOI, надо получить в Windows. Запускаешь:
TextBox = StringConvert(TextBox, 20866, 1251)


Значения для часто используемых кодировок:
Central European (DOS) 852
Central European Alphabet (Windows) 1250
Central European Alphabet (ISO) 28592
Cyrillic Alphabet (DOS) 866
Cyrillic Alphabet (Windows) 1251
Cyrillic Alphabet (ISO) 28595
Cyrillic Alphabet (KOI8-R) 20866
Ukrainian Alphabet (KOI8-RU) 21866
Latin 3 Alphabet (ISO) 28593
Western Alphabet 1252
Baltic Alphabet (Windows) 1257
Baltic Alphabet (ISO) 28594
Greek Alphabet (Windows) 1253
Greek Alphabet (ISO) 28597
Turkish Alphabet 1254
Arabic Alphabet (Windows) 1256
Arabic Alphabet (ISO) 28596
Hebrew (DOS) 862
Hebrew Alphabet (Windows) 1255

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам