2

ドイツの特殊文字 Ää、Öö、Üü、ß を含むライブ リンクのドキュメントとフォルダがあります。LiveLink API サーバー バージョン 9.2.0.0 の次のコードと、LiveLink 9.5.0.0 のクライアント バージョン API バージョンを使用して、ドキュメントとフォルダー名を抽出しました。

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 サーバー API バージョン 9.5.0.0 で正常に動作します。ただし、LiveLink API サーバー バージョン 9.7.1 では機能しません。この問題の修正を手伝ってもらえますか?

4

1 に答える 1

1

サーバー Livelink/livelink.exe?func=admin.sysvars の管理パネルに移動し、文字セット: UTF-8 を設定し、コード セクションを次のように変更します。

    byte[] bytes = Encoding.Default.GetBytes(value); 
    var retValue = Encoding.UTF8.GetString(bytes);
于 2014-04-24T11:38:35.207 に答える