powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Многоязыковая поддержка в Access 2002 и вывод содержимого через ASP
2 сообщений из 2, страница 1 из 1
Многоязыковая поддержка в Access 2002 и вывод содержимого через ASP
    #32501720
Andreja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник следующий вопрос.
Имеется таблица в Access 2002, в которой есть записи на трех языках.
При открытий таблицы из самого Access'a все читабельно.
При запросе из ASP вывести записи только английского, все нормально, только русского все нормально, а при выводе записей на греческий, asp выводить абракадабру (кодировка в ASP'e меняется соответственно автоматический win-1251, win-1253).
Как быть?
...
Рейтинг: 0 / 0
Многоязыковая поддержка в Access 2002 и вывод содержимого через ASP
    #32502165
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправте меня если вру :)

ADO из Access 2002 вытаскивает Unicode, а указание кодовой страницы подразумевает использование ANSI. Чтобы техст по-русски из Unicode перевести в ANSI, от кода символа надо отнять 848.
Сколько надо отнять для греческого не знаю.

У меня русский переделывается вот такой функцией в ASP на VBScript.
Код: 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.
Function GetCorrectValue(strInput)
    Dim strOutput, strChar, intChar, i
    If IsNull(strInput) Then
        GetCorrectValue = "& nbsp;"  ' -пробел надо здесь убрать'
    Else
        strInput = Replace(strInput, Chr( 13 ) & Chr( 10 ), "<br>")

        strOutput = ""
        strChar = ""
        For i =  1  To Len(strInput)
            strChar = Mid(strInput, i,  1 )
            intChar = AscW(strChar)
            If intChar >  128  Then
                If intChar <  0  Then intChar =  2  ^  16  + intChar
                If intChar >=  1040  And intChar <=  1103  Then
                    strChar = ChrW(intChar -  848 )
                ElseIf intChar =  1025  Then
                    strChar = ChrW( 168 ) 'Ё'
                ElseIf intChar =  1105  Then
                    strChar = ChrW( 184 ) 'ё'
                Else
                    strChar = "?"
                End If
            End If
            strOutput = strOutput & strChar
        Next
        SetCorrect Value = strOutput
    End If
End Function
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Многоязыковая поддержка в Access 2002 и вывод содержимого через ASP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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