2016-05-11 18 views
0

私はsvg経由でイメージをエクスポートしています。以下は私のc#コードです。「指定されたエンコーディングで無効な文字を取得しています。

string chartTitle = "ABC 50 µG"; 
XmlDocument xd = new XmlDocument(); 
xd.XmlResolver = null; 

string chartSvg = "<svg><text x=\"1\" y=\"15\" font-size=\"14\" font-weight='bold' font-family=\"Arial\" ><tspan x=\"458\" dy=\"10\"> " + chartTitle + "</tspan></text></svg>" 

xd.LoadXml(chartSvg); 
svgGraph = Svg.SvgDocument.Open(xd); 

私は私のchartTitleµシンボルによる上記の最後の行でエラーInvalid character in the given encoding. Line 1, position 110.を取得しています。

どのように私はあなたがこのように試すことができ、この

+0

「μ」を「\ u00B5」 –

+0

@ AlvinKに置き換えようとしました。これを試しましたが、エクスポートされたイメージに 'ABC 50 \ u00B5G'と表示されます – Rohaan

+0

http://stackoverflow.com/questions/310669/why-does-c-sharp-xmldocument-loadxmlstring-fail-when-an-xml-header- is-included - UTF8エンコーディングが必要 –

答えて

0

を見ては、下記のコードで溶液を得ました。

string chartTitle = "ABC 50 µG"; 
XmlDocument xd = new XmlDocument(); 
xd.XmlResolver = null; 

string chartSvg = "<svg><text x=\"1\" y=\"15\" font-size=\"14\" font-weight='bold' font-family=\"Arial\" ><tspan x=\"458\" dy=\"10\"> " + chartTitle + "</tspan></text></svg>" 

xd.LoadXml(chartSvg);  
XmlDeclaration obj = xd.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes"); 
XmlElement root = xd.DocumentElement; 
xd.InsertBefore(obj, root); 
svgGraph = Svg.SvgDocument.Open(xd); 
0

取り組むことができ、助けてください:

var byteArr = Encoding.ASCII.GetBytes(svgContents); 
using (var str = new MemoryStream(byteArr)) 
{ 
    var svgDoc = SvgDocument.Open(str); 
    var bitmap = svgDoc.Draw(); 
    bitmap.Save(path, ImageFormat.Png); 
} 

はまたSVG Engine codeplex

+0

試してみました.getting "指定されたドキュメントが見つかりません"例外 – Rohaan

関連する問題