Помощь - Поиск - Пользователи - Календарь
Полная версия: За пределами ASCII
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
DarkWishmaster
Привет. Как я понял тип char работает с символами из ASCII, но там нету русских букв, китайский и.т
А вот мне надо составить програму:
Например есть текст. документ из русских букв и надо транслировать его в англ. Это вообще возможно?
например : русский - russkii
-TarasBer-
В char есть русские буквы.
DarkWishmaster
Цитата(-TarasBer- @ 18.03.2011 18:07) *

В char есть русские буквы.

когда их читаю из документов то их показывают какими то непонятными символами.
Мне надо читать из файла всё как есть и транслировать в другой язык, в моем случае в румынском, где так же есть символы типа 'ă', 'î' 'ş', и.т Можно как нибудь сделал что-бы паскаль их распозновал?
-TarasBer-
Паскаль работает в ДОС-кодировке, документ сохранён в виндовой кодировке.
Поэтому такая фигня.
Могу посоветовать набить код в программе, поддерживающей виндовую кодировку.
код такого плана:

case c[i] of
'А' : res := res + 'A';
'Б' : res := res + 'B';
'В' : res := res + 'V';
end;
DarkWishmaster
Цитата(-TarasBer- @ 18.03.2011 20:28) *

Паскаль работает в ДОС-кодировке, документ сохранён в виндовой кодировке.
Поэтому такая фигня.
Могу посоветовать набить код в программе, поддерживающей виндовую кодировку.
код такого плана:

case c[i] of
'А' : res := res + 'A';
'Б' : res := res + 'B';
'В' : res := res + 'V';
end;


я пока тока язык Паскаль, так что...
А Паскаль АBC или FPC поддерживают виндовую кодировку?
-TarasBer-
> А Паскаль АBC

Да

> или FPC

Не знаю. У него среда же с закосом под Турбо, так что хз, какая там кодировка. Да проверь, тупо в блокноте вбей русский текст, в ФПЦ открой и посмотри, что будет.

> поддерживают виндовую кодировку?
DarkWishmaster
Цитата(-TarasBer- @ 18.03.2011 21:43) *

> А Паскаль АBC

Да

> или FPC

Не знаю. У него среда же с закосом под Турбо, так что хз, какая там кодировка. Да проверь, тупо в блокноте вбей русский текст, в ФПЦ открой и посмотри, что будет.

> поддерживают виндовую кодировку?


спасибо за помощь. АВС уже видит русский текст а вот символы типа 'ă' 'ş' 'ţ' видет как '?'.
Если он поддерживает виндовую кодировку, значит должен быть способ это исправить?
andriano
Вообще-то стандартный ASCII - семибитная телеграфная кодировка и действительно не содержит кириллицы.
Но т.к. принято, что в байте 8 битов, а не 7, широкое распространение получила т.н. расширенная ASCII, в которой кроме 128 стандартных символов ASCII присутствует еще 128. Но т.к. для разных языков потребный набор символов различается, существует масса различных вариантов расширенной таблицы ASCII, называемых кодировками.
В этом случае прочитать текст, не зная, в какой кодовой странице он закодирован, невозможно. Отсюда и "кракозябры".
Собственно, даже вариантов кодировки кириллицы существует не менее 6 (1251-Windows, 866-DOS, ГОСТ, КОИ-8, 8859-5 и MAC).
Решением проблемы разнообразных кодировок является Юникод, имеющий две разновидности:
UTF-16 - двухбайтовая кодировка,
UTF-8 - кодировка с переменным количеством байт на символ. В частности, символы первой половины ASCII - однобайтовые, а символы кириллицы - двухбайтовые.

Никаких препятствий для обработки любой кодировки (включая Юникод) в Паскале - нет. Единственное, достаточно трудоемко их адекватная отображение. Кроме того, можно воспользоваться средствами, скажем, WinAPI.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.