2013-09-18 4 views
3

У меня есть имя папки, которое содержит немецкий специальный символ, такой как äÄéöÖüß. Следующий скриншот отображает содержимое сервера LiveLink.Немецкий символ ß кодировка в Livelink с использованием C#

enter image description here

Я хочу, чтобы извлечь папку с сервера Livelink с помощью C#.

valueis получен от LLserver.

var bytes = new List<byte>(value.Length);   

     foreach (var c in value) 
     { 
      bytes.Add((byte)c);     
     }   

     var result = Encoding.UTF8.GetString(bytes.ToArray()); 

Наконец, результат äÄéöÖüx .где ß рассматривается как коробка символ «х». Все остальные символы, присутствующие в имени папки, декодируются успешно/правильно, кроме символа ß.

Мне просто интересно, почему тот же код работает для всех других немецких специальных символов, но не для ß.

Может ли кто-нибудь помочь устранить эту проблему в C#?

Заранее спасибо.

+0

Что такое "LLServer"? Какой тип массива 'значение'? –

+0

LLServer - это сервер LiveLink, который также известен Content Server. –

+0

И какой тип массива 'значение'? Это 'int [] value'? Или что это? Значение –

ответ

1

Перейти к панели администратора сервера Livelink/livelink.exe FUNC = admin.sysvars и установить набор символов: UTF-8

и изменить раздел кода, как следовать

 byte[] bytes = Encoding.Default.GetBytes(value); 
     var retValue = Encoding.UTF8.GetString(bytes); 

Он отлично работает ,

0

Вы догадались, что ваша кодировка является UTF8, и это явно не так. Вам нужно будет выяснить, какая кодировка байтового потока действительно представляет и использовать это вместо этого. Мы не можем вам помочь, вам придется спросить отправителя указанных байтов.

+0

Кодирование сервера LiveLink находится в UTF-8. –

+0

Какая версия Livelink или Content Server работает? Доступен патч для версии 9.7.1. –