Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Livelink中的德语字符_C#_Encoding_Livelink - Fatal编程技术网

C# Livelink中的德语字符

C# Livelink中的德语字符,c#,encoding,livelink,C#,Encoding,Livelink,我想从Livelink服务器中提取名称中包含一些德语特殊字符的文件/文件夹和其他项目类型。Livelink服务器具有UTF-8编码。 值为Test Dokumentäöü223; var bytes = new List<byte>(value.Length); foreach (var c in value) bytes.Add((byte)c); var retValue = Encoding.UTF8.GetS

我想从Livelink服务器中提取名称中包含一些德语特殊字符的文件/文件夹和其他项目类型。Livelink服务器具有UTF-8编码。 值为Test Dokumentäöü223;

      var bytes = new List<byte>(value.Length);
        foreach (var c in value)
            bytes.Add((byte)c);
        var retValue = Encoding.UTF8.GetString(bytes.ToArray());
上面的代码示例修复了某些字符中的s编码问题,但ß被视为?拉丁语ISO 8859-2编码的字符。有人能帮我解决这个问题吗


提前感谢

将ISO-8859-1存储在C字符串中没有意义,因为它存储Unicode字符

真正有意义的是将Unicode字符串转换为表示ISO-8859-1中字符串的字节[]

var test ="äöüßÄÖÜ";
var iso = Encoding.GetEncoding("ISO-8859-1");
var bytes = iso.GetBytes(test);
File.WriteAllBytes("Sample file ISO-8859-1.txt", bytes);
试试这个,你会发现文本文件的编码是正确的


您甚至可以使用十六进制编辑器或调试器检查ß是否正确编码为0xDF请参见您必须在LL会话上设置UTF-8编码:

LLSTATUS llSessionStatus = LL_SessionAllocEx( &llSession, server, port,  "",  login, password, NULL);
LLSTATUS status = LL_SetCodePage( llSession , LL_TRUE, LL_TRUE, (LLLONG) 65001 );
65001-是UTF-8的代码页

真的不清楚你到底想做什么。。。使用这种方法通常是不合适的。不清楚您实际遇到了什么编码问题,也不清楚您实际从Livelink获得了什么数据,或者您试图如何显示这些数据。我强烈建议您不要使用已有的代码,但如果没有更多的上下文,我们无法帮助您获得更好的代码。