Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ: кодировка / 1 сообщений из 1, страница 1 из 1
19.01.2005, 12:08:06
    #32871938
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FAQ: кодировка
ключевые слова для поиска:
кодировка, перекодировка, кодирование, кодовая страница, КОИ


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
Option Compare Database
Option Explicit
Const Win =  1 , Dos =  2 , Koi =  3 , Iso =  5 

Public Function Recode(Char As String, Src, Dest) As String
Const wDos As String = "°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧрЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Їабвгдежзийклмноп"
Const wIso As String = "°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧўЩЪЫЬЭЮЯтуфхцчшщсыьэюяШъ°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп"
Const wKoi As String = "ђ‘’Ѓ‡Іґ§¦µЎЁ®­¬ѓ„‰€†ЂЉЇ°«Ґ»ё± ѕ№є¶·Є©ў¤Ѕі…‚ЌЊЋЏ‹™˜“›џ—њћЈ–љќ”їј•бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС"
Const wWin As String = "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
Const NotRecodedChar As String = "?"

If Src = Dest Then
Recode = Char
Exit Function
End If

Dim t As String, i As Long, tt As String, a As Long, ss As String, ch As String
If Src = Win Then
t = Char
Else
Select Case Src
Case Koi: ss = wKoi
Case Dos: ss = wDos
Case Iso: ss = wIso
End Select
For i =  1  To Len(Char)
ch = Mid(Char, i,  1 )
If Asc(ch) <  128  Then
t = t & ch
Else
a = InStr( 1 , ss, ch, vbBinaryCompare)
If a =  0  Then
t = t & NotRecodedChar
Else
t = t & Mid$(wWin, a,  1 )
End If
End If
Next i
End If

If Dest = Win Then
Recode = t
Else
Select Case Dest
Case Koi: ss = wKoi
Case Dos: ss = wDos
Case Iso: ss = wIso
End Select
For i =  1  To Len(Char)
ch = Mid(t, i,  1 )
If Asc(ch) <  128  Then
tt = tt & ch
Else
a = InStr( 1 , wWin, ch, vbBinaryCompare)
If a =  0  Then
tt = tt & NotRecodedChar
Else
tt = tt & Mid$(ss, a,  1 )
End If
End If
Next i
Recode = tt
End If
End Function

оригинал для VB:
http://www.relib.com/forums/topic.asp?id=738282
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / FAQ: кодировка / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]