@joebigelow / wix / commits / 38b6fe65

Fix codepage handling to cover both Framework- and Core- supported code pages.

Bob Arnson committed Sep 6, 2018 at 20:33 UTC 38b6fe65e36ed9442e3fc714dea1793d457f0b20
3 files changed +10 -3
src/WixToolset.Core/Common.cs
+8 -1
@@ -172,6 +172,8 @@ namespace WixToolset.Core
172 /// <exception cref="WixException">The code page is invalid for summary information.</exception>
173 public static int GetValidCodePage(string value, bool allowNoChange = false, bool onlyAnsi = false, SourceLineNumber sourceLineNumbers = null)
174 {
175 + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
176 +
177 try
178 {
179 Encoding encoding;
@@ -190,7 +192,7 @@ namespace WixToolset.Core
192 return -1;
193 }
194
193 - encoding = CodePagesEncodingProvider.Instance.GetEncoding(codePage);
195 + encoding = Encoding.GetEncoding(codePage);
196 }
197 else
198 {
@@ -208,6 +210,11 @@ namespace WixToolset.Core
210 }
211 }
212
213 + if (encoding == null)
214 + {
215 + throw new WixException(ErrorMessages.IllegalCodepage(sourceLineNumbers, codePage));
216 + }
217 +
218 return encoding.CodePage;
219 }
220 catch (ArgumentException ex)
src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/Package.wxs
+1 -1
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 - <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 + <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
src/test/WixToolsetTest.CoreIntegration/TestData/SingleFileCompressed/Package.wxs
+1 -1
@@ -1,6 +1,6 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 - <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 + <Product Id="*" Name="MsiPackage" Codepage="65001" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
5
6 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />