У меня есть сервер Telnet, который позволяет пользователю указать кодировку для связи. Затем сервер будет использовать эту кодировку для связи, если она поддерживается.

Я попытался следующие кодировки, которые все производили мусор из символов Unicode на цель:

  • CP-1252
  • UTF-8,
  • Latin1

Сервер также позволяет мне перечислить все кодировки вместе с ěščřžýáíé символов , чтобы проверить , какой будет работать. Это вывод в Windows Telnet:

UTF-8: ─Ť┼í─Ź┼Ö┼ż├Ż├í├ş├ę
ISO-8859-1: ?????řßÝÚ
latin1: ?????řßÝÚ
CP819: ?????řßÝÚ
IBM819: ?????řßÝÚ
iso-ir-100: ?????řßÝÚ
csISOLatin1: ?????řßÝÚ
ISO-8859-15: ?Ę??ŞřßÝÚ
latin9: ?Ę??ŞřßÝÚ
☺Y☺~☺řßÝÚ a☺
☺Y☺~řßÝÚE: ☺☺a☺
☺Y☺~☺řßÝÚ☺
☺Y☺~☺řßÝÚa☺
☺Y☺~řßÝÚE: ☺a☺
☺Y☺~☺řßÝÚ
System:
Big5-HKSCS:  n????? h q m
Big5: ?????????
Big5-ETen: ?????????
CP950: ?????????
windows-949: ?????????
CP949: ?????????
EUC-KR: ?????????
Shift_JIS: ?????????
SJIS: ?????????
MS_Kanji: ?????????
ISO-2022-JP: ?????????
JIS7: ?????????
EUC-JP: ?????????
GB2312:   ?????
GBK:
CP936:
MS936:
windows-936:
GB18030:    0 8 0 0 0 0 0 6 0 5
hp-roman8: ? ???
roman8: ? ???
csHPRoman8: ? ???
TIS-620: ?????????
ISO 8859-11: ?????????
WINSAMI2: ?  ?
WS2: ?  ?
macintosh: ??????
Apple Roman: ??????
MacRoman: ??????
windows-1258: ??????
CP1258: ??????
windows-1257: ?  ? ???
CP1257: ?  ? ???
windows-1256: ????????
CP1256: ????????
windows-1255: ?????????
CP1255: ?????????
windows-1254: ? ????
CP1254: ? ????
windows-1253: ?????????
CP1253: ?????????
windows-1252: ? ??
CP1252: ? ??
windows-1251: ?????????
CP1251: ?????????
windows-1250:
CP1250:
IBM866: ?????????
CP866: ?????????
csIBM866: ?????????
IBM874: ?????????
CP874: ?????????
IBM850: ?????
CP850: ?????
csPC850Multilingual: ?????
ISO-8859-16: ?  ? ?
iso-ir-226: ?  ? ?
latin10: ?  ? ?
ISO-8859-14: ?????
iso-ir-199: ?????
latin8: ?????
iso-celtic: ?????
ISO-8859-13: ?  ? ???
ISO-8859-10: ?  ?
iso-ir-157: ?  ?
latin6: ?  ?
ISO-8859-10:1992: ?  ?
csISOLatin6: ?  ?
ISO-8859-9: ??????
iso-ir-148: ??????
latin5: ??????
csISOLatin5: ??????
ISO-8859-8: ?????????
ISO 8859-8-I: ?????????
iso-ir-138: ?????????
hebrew: ?????????
csISOLatinHebrew: ?????????
ISO-8859-7: ?????????
ECMA-118: ?????????
greek: ?????????
iso-ir-126: ?????????
csISOLatinGreek: ?????????
ISO-8859-6: ?????????
ISO-8859-6-I: ?????????
ECMA-114: ?????????
ASMO-708: ?????????
arabic: ?????????
iso-ir-127: ?????????
csISOLatinArabic: ?????????
ISO-8859-5: ?????????
cyrillic: ?????????
iso-ir-144: ?????????
csISOLatinCyrillic: ?????????
ISO-8859-4: ?  ? ?
latin4: ?  ? ?
iso-ir-110: ?╣Ŕ?ż?ßÝÚ
csISOLatin4: ?╣Ŕ?ż?ßÝÚ
ISO-8859-3: ??????ßÝÚ
latin3: ??????ßÝÚ
iso-ir-109: ??????ßÝÚ
csISOLatin3: ??????ßÝÚ
ISO-8859-2: ý╣Ŕ°żřßÝÚ
latin2: ý╣Ŕ°żřßÝÚ
iso-ir-101: ý╣Ŕ°żřßÝÚ
csISOLatin2: ý╣Ŕ°żřßÝÚ

С замазкой он явно работает и правильный UTF-8. Вот что я получаю при использовании putty (я сократил остальную часть длинного списка):

UTF-8: ěščřžýáíé
ISO-8859-1: ?????▒▒▒▒
latin1: ?????▒▒▒▒
CP819: ?????▒▒▒▒
IBM819: ?????▒▒▒▒
iso-ir-100: ?????▒▒▒▒
csISOLatin1: ?????▒▒▒▒
ISO-8859-15: ?▒??▒▒▒▒▒
latin9: ?▒??▒▒▒▒▒
Y~▒▒▒▒LE:
Y~▒▒▒▒2BE:

Может быть проблема на сервере, но чтобы рассмотреть такую возможность, мне сначала нужно узнать, какую кодировку фактически использует клиент Microsoft Telnet. Какая это кодировка? Это сохранено в некоторой системной переменной?

1 ответ1

1

Telnet кодируется в ASCII - существует восьмибитный режим, который может быть согласован, который обычно используется для передачи данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .