我在“实时”链接中有“文档”和“文件夹”,其中包含德语特殊字符Ää,Öö,Üü,ß。我使用以下LiveLink API服务器版本9.2.0.0和客户端版本API版本的LiveLink 9.5.0.0提取了文档和文件夹名称。
string encodedName = LLValueUtil.GetValue(mainLLObj, "Name").TrimEnd('.');
int charIndex = 0;
while (Array.IndexOf(WhitespaceChars, encodedName[charIndex]) >= 0) {
string replacement = System.Xml.XmlConvert.EncodeName(encodedName[charIndex].ToString());
encodedName = encodedName.Substring(0, charIndex) + replacement + encodedName.Substring(charIndex + 1);
charIndex += replacement.Length;
}
charIndex = encodedName.Length - 1;
// Replaces trailing WhitespaceChars
while (Array.IndexOf(WhitespaceChars, encodedName[charIndex]) >= 0) {
string replacement = System.Xml.XmlConvert.EncodeName(encodedName[charIndex].ToString());
string lastPart = encodedName.Substring(charIndex + 1);
encodedName = encodedName.Substring(0, charIndex) + replacement + lastPart;
charIndex = encodedName.Length - replacement.Length - lastPart.Length - 1;
}
string documentName = encodedName; // give fine File name
此代码在Livelink服务器9.5.0.0版中正常工作。但不适用于LiveLink API服务器9.7.1版。您能帮我解决这个问题吗?
最佳答案
转到服务器Livelink / livelink.exe?func = admin.sysvars的管理面板,并设置字符集:UTF-8和代码部分更改如下
byte[] bytes = Encoding.Default.GetBytes(value);
var retValue = Encoding.UTF8.GetString(bytes);