Яке кодування використовується за замовчуванням за допомогою telnet у MS Windows?


0

У мене є сервер 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: ý╣Ŕ°żřßÝÚ

З putty, це явно працює, і правильним є UTF-8. Це те, що я отримую, використовуючи шпаклівка (я відрізав решту довгого списку):

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

Там може бути проблемою на сервері, але, щоб розглянути цю можливість, мені спочатку потрібно знати, яке кодування дійсно використовує клієнт Microsoft Telnet. Яке це кодування? Чи зберігається вона в деяких системних змінних?


Якщо я правильно пам'ятаю, це, мабуть, 7 біт ASCII. Якщо ви бачите сміття у віддаленому сеансі, це, ймовірно, тому, що ви не вибрали сумісну установку з віддаленим сервером.
Julie Pelletier

@JuliePelletier Мені потрібно знати, яке ім'я кодування я повинен передати на сервер. Якби це був перший символ ASCII, він не дозволив би діакритичні символи. У мене немає проблем з відправленням і отриманням символів ASCII, тільки Unicode викликають сміття.
Tomáš Zato

Спочатку я думав, що все, що ви отримуєте, - це сміття (небажані / нечутні результати), і підозрювані помилки налаштування зв'язку. Але тоді я побачив вихід PuTTY, і зрозумів, що це не випадково. Чи випускає PuTTY UTF-8 саме те, що ви очікували побачити? Зверніть увагу, що до Win10 Windows Telnet, як відомо, надає дуже погану підтримку терміналів, за винятком необробленого тексту, який не містить кодів виходу. Я читав Microsoft планує вносити зміни в консоль в Win10; Я ще не визначив, чи зможуть ті, хто працює, зробити роботу Telnet кращою, ніж у попередніх версіях.
TOOGAM

1
на RFC854, пристрій мережевого віртуального терміналу використовує 7-бітові символи USASCII в 8-бітному полі. tools.ietf.org/html/rfc854 Див. Розділ "Принтер і клавіатура NVT" на стор.
Frank Thomas

Як вказує @FrankTomas в RFC 854 , він також містить список: The NVT is intended to strike a balance between being overly restricted (not providing hosts a rich enough vocabulary for mapping into their local character sets), and being overly inclusive (penalizing users with modest terminals). він також стверджує The code set is seven-bit USASCII in an eight-bit field, except as modified herein. Any code conversion and timing considerations are local problems and do not affect the NVT. в Мережевий віртуальний термінал
Pimp Juice IT

Відповіді:


1

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


Не могли б Ви розробити, будь ласка? Чи є який-небудь документ, що описує, як використовувати вісім біт для відправки символів Unicode?
Tomáš Zato
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.