テンプレート (C#) を介してマルチメディア コンポーネントに埋め込まれた XML ファイル コンテンツを読み込もうとしています。XML ファイルには UTF-8 文字がほとんど含まれていません。XML コンテンツを読み取ると、出力で UTF-8 文字が一部の文字化け (? 記号または四角形のボックス) に変換されます。以下は、C# テンプレートで使用したコード スニペットです。
コード 1:
Component xmlMultimediaComponent = (Component)XMLMMSRepositoryObject;
// read xml in multimedia component into a string
UTF8Encoding encoding = new UTF8Encoding();
byte[] binary = xmlMultimediaComponent.BinaryContent.GetByteArray();
string navXmlContent = (binary != null)
? UTF8Encoding.UTF8.GetString(binary, 0, binary.Length)
: string.Empty;
コード 2:
using (MemoryStream ms = new MemoryStream())
{
xmlMultimediaComponent.BinaryContent.WriteToStream(ms);
ms.Seek(0, SeekOrigin.Begin);
using (var streamReader = new StreamReader(ms, Encoding.UTF8))
{
string output = streamReader.ReadToEnd();
....
}
}
上記の両方のケースで、出力にガベージ文字が含まれています (UTF-8 エンコードの場合)。
Tridion マルチメディア コンポーネントの XML ファイルから、同じ UTF-8 コンテンツを文字列出力に取得する方法を教えてください。
注: マルチメディア コンポーネントの XML ファイルは、UTF-8 エンコードで保存されます。
前もって感謝します。