Автор вопроса: Aracon | Web-сайт:aracon-studios.com | ICQ: 221881915
Скажите, какие есть функции для смен кодировки текста, как в браузере? То есть нужно переводить не только из DOS в Win, но и из KOI, а возможно, и из ISO.
Функция MutiByteToWideChar относится к разделу строковых функций
Windows API. Преобразует строку ANSI или DBCS в Unicode. В ВБ
используется без проблем. Функция аналогична встроенной StrConv
(которой проще пользоваться).
Параметры:
CodePage - Long - идентификатор кодовой страницы, используемой
для преобразования, или константа с префиксом
CPP_???
dwFlags - Long - комбинация следующих констант:
MB_PRECOMPOSED: по возможности преобразовать
составные символы (например, буква с
диакритическим знаком) в один символ.
Используется по умолчанию.
MB_COMPOSED: оставить составные символы в виде
двух кодов.
MB_ERR_INVALID_CHARS: если при вводе
обнаруживается недопустимый символ, вызов
функции завершается неудачей.
MB_USEGLYPHS: по возможности использовать
глифовые символы вместо управляющих.
IpMultiByteStr - String - строка ANSI или DBCS
chhMultiByte - Long - длина строки IpMultiByteStr. -1 для того, чтобы
длина строки вычислялась автоматически.
IpWideCharStr - Long - адрес приемного буфера для преобразованной
строки Unicode. Можно воспользоваться строковым
параметром, но дополнительные преобразования,
применяемые в ВБ к строкам, могут стать
причиной ошибок. Буфер должен быть отличным от
IpMultiByteStr
cchWideChar - Long - длина буфера IpWideCharStr. Ноль для получения
необходимой длины буфера.
Возвращаемое значение: Long - количество символов, записанных
IpWideCharStr, или необходимая длина буфера,
если параметр cchWideChar равен нулю. Ноль в
случае ошибки. GetLastError возвращает
следующие коды ошибок:
ERROR_INSUFFICIENT_BUFFER,
ERROR_INVALID_PARAMETR, ERROR_INVALID_FLAGS,
ERROR_NO_UNICODE_TRANSLATION.
Платформа: Windows 95/Windows NT
Функция WideCharToMultiByte относится к разделу строковых функций.
Функция преобразует заданную строку Unicode в ANSI или DBCS на
основании заданной кодовой страницы. В ВБ используется без проблем.
Функция аналогична встроенной StrConv (которой проще пользоваться).
Параметры:
CodePage - Long - идентификатор кодовой страницы, используемой для
преобразования, или константа с префиксом CPP_???.
dwFlags - Long - ноль или комбинация следующих констант:
WC_COMPOSITECHECK - по возможности преобразовать
составные символы (например, буква с диакритическим
знаком) в один символ.
если флаг WC_COMPOSITECHECK задан, то следующие
константы указывают как поступать с составными
символами, которые не удается преобразовать в один
символ:
WC_DISCARDNS - удалять символы не имеющие ширины
(например, диакритические знаки).
WC_SEPCHARS - включить в итоговую строку оба символа.
chhMultiByte - Long - длина строки IpMultiByteStr. 0 для того, чтобы
получить необходимую длину буфера..
IpWideCharStr - Long - адрес исходного буфера Unicode. Можно
воспользоваться строковым параметром, но дополнительные
преобразования, применяемые в ВБ к строкам, могут стать причиной
ошибок. Буфер должен быть отличным от IpMultiByteStr
cchWideChar - Long - длина буфера IpWideCharStr в символах (не в
байтах!). -1 для того, чтобы необходимая длина
буфера вычислялась автоматически.
IpDefaultChar - String - первый символ этой строки используется для
замены всех символов, которые не удалось преобразовать, vbNullString
для использования системного символа по
умолчанию.
IpUsedDefaultChar - Long - заполняется ненулевым значением, если один
или несколько символов исходной строки не
удалось преобразовать в ANSI или DBCS.
Возвращаемое значение: Long - количество символов, записанных
IpMultiByteStr, или необходимая длина буфера,
если параметр cchMultiByte равен нулю. Ноль в
случае ошибки. GetLastError возвращает
следующие коды ошибок:
ERROR_INSUFFICIENT_BUFFER,
ERROR_INVALID_PARAMETR, ERROR_INVALID_FLAGS.
Платформа: Windows 95/Windows NT