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)" />