Импорт расширенного ASCII в Oracle - PullRequest
0 голосов
/ 22 октября 2008

У меня есть процедура, которая импортирует двоичный файл, содержащий несколько строк. Строки могут содержать расширенный ASCII, например, CHR (224), «а». Процедура берет RAW и преобразует байты BCD в символы в строке один за другим.

Проблема в том, что расширенные символы ASCII теряются. Я подозреваю, что это связано с тем, что их значения означают что-то еще в UTF8.

Я думаю, что мне нужна функция, которая принимает индекс символа ASCII и возвращает соответствующий символ UTF8.

Обновление: если я знаю эквивалентный набор символов Oracle для входящего текста, могу ли я затем преобразовать необработанные байты в UTF8? Исходный текст всегда будет однобайтовым.

1 Ответ

1 голос
/ 22 октября 2008

Нет такой вещи, как "расширенный ASCII". Или, если быть более точным, так много кодировок являются надмножествами ASCII, разделяющими одни и те же первые 127 кодовых точек, что этот термин слишком расплывчатый, чтобы иметь смысл. Вам необходимо выяснить, кодируются ли строки в этом файле с использованием UTF-8, ISO-8859-что угодно, MacRoman и т. Д.

Ответ на вторую часть вашего вопроса тот же. UTF-8 по своей сути является надмножеством ASCII. Любой символ ASCII (т.е. от 0 до 127) также является символом UTF-8. Чтобы перевести некоторый не ASCII-символ (т.е.> = 128) в UTF-8, вам сначала нужно выяснить, в какой кодировке он находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...