Index: Wiki/src/main/resources/MSOffice/GetEncodingService.xml =================================================================== --- Wiki/src/main/resources/MSOffice/GetEncodingService.xml (revision 0) +++ Wiki/src/main/resources/MSOffice/GetEncodingService.xml (revision 0) @@ -0,0 +1,61 @@ + + + +MSOffice +GetEncodingService + +en +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1239491696000 +1239493018000 +1239493018000 +2.1 +GetEncodingsService + + + + +false +xwiki/1.0 +false + + +XWiki.TagClass + + + + + + + + +0 +input +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +MSOffice.GetEncodingService +0 +XWiki.TagClass +9fd947e4-3ebe-41b0-ba90-2cd80b3c7df3 + + + + +$xwiki.getEncoding() + Index: XWikiLib/Clients/IXWikiClient.cs =================================================================== --- XWikiLib/Clients/IXWikiClient.cs (revision 18614) +++ XWikiLib/Clients/IXWikiClient.cs (working copy) @@ -177,6 +177,12 @@ /// The full name of the xwiki page /// The struts action. /// The URL for the specified page and action. - String GetURL(String documentFullName, String xwikiAction); + String GetURL(String documentFullName, String xwikiAction); + + /// + /// Gets the encoding from the wiki instance. + /// + /// A String containing the encoding type. + String GetEncoding(); } } Index: XWikiLib/Clients/XWikiHTTPClient.cs =================================================================== --- XWikiLib/Clients/XWikiHTTPClient.cs (revision 18614) +++ XWikiLib/Clients/XWikiHTTPClient.cs (working copy) @@ -627,6 +627,20 @@ reader.Close(); return response; } + /// + /// Gets the encoding of the wiki instance. + /// + /// The string containing the encoding type. + public string GetEncoding() + { + String uri = ServerURL + XWikiURLs.GetEncoding; + Stream data = webClient.OpenRead(uri); + StreamReader reader = new StreamReader(data); + String response = reader.ReadToEnd(); + data.Close(); + reader.Close(); + return response; + } #endregion } Index: XWikiLib/Clients/XWikiXMLRPCClient.cs =================================================================== --- XWikiLib/Clients/XWikiXMLRPCClient.cs (revision 18614) +++ XWikiLib/Clients/XWikiXMLRPCClient.cs (working copy) @@ -128,6 +128,10 @@ { throw new NotImplementedException(); } + public string GetEncoding() + { + throw new NotImplementedException(); + } #endregion } Index: XWikiLib/XWiki/XWikiURLFactory.cs =================================================================== --- XWikiLib/XWiki/XWikiURLFactory.cs (revision 18614) +++ XWikiLib/XWiki/XWikiURLFactory.cs (working copy) @@ -16,6 +16,7 @@ static String wikiStructureURL = "/xwiki/bin/view/MSOffice/StructureService?xpage=plain"; static String attachmentServiceURL = "/xwiki/bin/view/MSOffice/AttachmentService?xpage=plain"; static String protectedPagesURL = "/xwiki/bin/view/MSOffice/ProtectedPages?xpage=plain"; + static String getEncoding = "/xwiki/bin/view/MSOffice/GetEncodingService?xpage=plain"; /// /// Gets or sets the URL of the service that handles attachments. @@ -72,5 +73,15 @@ get { return protectedPagesURL; } set { protectedPagesURL = value; } } + + /// + /// Gets the encoding of the wiki. + /// + public static String GetEncoding + { + get { return getEncoding; } + set { getEncoding = value; } + } + } } Index: XWord/AddinActions.cs =================================================================== --- XWord/AddinActions.cs (revision 18614) +++ XWord/AddinActions.cs (working copy) @@ -406,7 +406,8 @@ addin.AddinStatus.Syntax = addin.DefaultSyntax; } //Convert the source to the propper encoding. - Encoding iso = Encoding.GetEncoding("ISO-8859-1"); + string encodingType = Client.GetEncoding(); + Encoding iso = Encoding.GetEncoding(encodingType); byte[] content = Encoding.Unicode.GetBytes(cleanHTML); byte[] wikiContent = null; wikiContent = Encoding.Convert(Encoding.Unicode, iso, content); @@ -485,7 +486,8 @@ pageContent = pageContent + newPageText; FileStream stream = new FileStream(localFileName, FileMode.Create); //byte[] buffer = UTF8Encoding.UTF8.GetBytes(pageContent.ToString()); - Encoding iso = Encoding.GetEncoding("ISO-8859-1"); + string encodingType = Client.GetEncoding(); + Encoding iso = Encoding.GetEncoding(encodingType); byte[] buffer = iso.GetBytes(pageContent); stream.Write(buffer, 0, buffer.Length); stream.Close();