Программа Ubuntu GnuCOBOL отображает символ « » вместо «£» в отредактированном изображении - PullRequest
5 голосов
/ 07 марта 2019

К сожалению, есть часть 2 на мой предыдущий вопрос .

Эта ссылка показывает простую программу на языке COBOL, перемещающую значение в отредактированное изображение, которое должно предшествовать значению с '£'.

Согласно ответу на предыдущий вопрос, для успешной компиляции программы необходимо явно установить кодировку в исходном файле на ISO-8859-15.

Ожидаемый вывод в соответствии скнига передо мной:

Edit1 = £12,345.95

Вывод из запуска программы:

Edit1 = �12,345.95

Я попробовал несколько других западных опций кодирования, доступных в Geany.Некоторые из них также компилируются, но имеют ту же проблему DISPLAY, которая, по-видимому, связана с кодировкой.

Кто-нибудь знает способ заставить программу работать так, как задумано в Ubuntu?

1 Ответ

7 голосов
/ 07 марта 2019

Это не какая-либо ошибка OpenCOBOL - это проблема, связанная с советом, который мне дали в моем связанном вопросе.

  1. Исходные файлы COBOL должны быть в кодировке ISO-8859-15.
  2. Ubuntu по умолчанию использует UTF-8. Это означает, что просто запрос на запуск программы запрашивает ее вывод в UTF-8, который не распознает знак фунта ISO-8859-15.

Одним из решений является явное обращение к сеансу Ubuntu с просьбой использовать ISO-8859-15:

$ luit -encoding ISO-8859-15 ./Listing9-2
Edit1 = £12,345.95
...