Японский код COBOL на мэйнфрейме IBM в Shift-JIS; представлены после передачи на ПК, как? - PullRequest
4 голосов
/ 21 августа 2009

У нас есть японский клиент с исходным кодом на COBOL на мэйнфрейме. Он утверждает, что код на мейнфрейме представлен в Shift-JIS2 (и мы думаем, что понимаем это довольно хорошо). Когда этот код передается на ПК, какая кодировка используется чаще всего? Мы послали ему программу для обработки этого кода на языке COBOL, и он, похоже, задыхается. Клиент не даст нам код напрямую, поэтому эксперименты трудны. Его эксперименты, кажется, указывают на UTF-8; Я предполагаю, что японские символы, кодируемые в Shift-JIS2, соответственно преобразуются в эквиваленты Юникода. У кого-нибудь есть опыт здесь?

РЕДАКТИРОВАТЬ: Я думаю, что мы решили нашу загадку. Клиент (дух!) Использует CP-932 ("ShiftJIS") на ПК, но его программа COBOL содержит японские символы в идентификаторах, и поэтому наш инструмент задыхается.

РЕДАКТИРОВАТЬ: Продолжение: немного больше сюрприз. SHIFT-JIS часто кодирует то, что мы считаем текстом ASCII, в виде так называемых символов «FULLWIDTH», которые занимают то же пространство экрана, что и восточноазиатский идеограф; условные символы ASCII действуют как полуширины. Итак, есть ПОЛНОСТЬЮ "А" , "B", ... "Z", а также FULLWIDTH "-". Очевидно, что для обработки японского COBOL наш синтаксический анализатор COBOL должен принимать не только Western ASCII, но также и эквиваленты FULLWIDTH, особенно. буквы FULLWIDTH и, что удивительно, ГИФЕНА FULLWIDTH используются для разделения «букв» в идентификаторе COBOL.

РЕДАКТИРОВАТЬ: IBM Enterprise COBOL позволяет использовать символы DBCS в идентификаторах. Хлоп!

1 Ответ

2 голосов
/ 21 августа 2009

В Японии по-прежнему используются три кодировки: EUC-JP, ISO-2022-JP и Shift-JIS.

ISO-2022-JP обычно используется для электронной почты. Пока вы увидите EUC-JP на Unix машинах. Лично я не имел дело ни с чем, кроме Shift-JIS. (Ни мэйнфреймов.)

...