[mono] Change default output encoding for ConsolePal.WebAssembly.cs to utf8 (#38641)
authorEgor Bogatov <egorbo@gmail.com>
Wed, 1 Jul 2020 16:12:56 +0000 (19:12 +0300)
committerGitHub <noreply@github.com>
Wed, 1 Jul 2020 16:12:56 +0000 (19:12 +0300)
* Change default output encoding to utf8 for wasm

src/libraries/System.Console/src/System/ConsolePal.WebAssembly.cs
src/libraries/System.Console/tests/ReadAndWrite.cs

index f7b1d8f..49d7913 100644 (file)
@@ -75,6 +75,8 @@ namespace System
 
     internal static class ConsolePal
     {
+        private static Encoding? s_outputEncoding;
+
         internal static void EnsureConsoleInitialized() { }
 
         public static Stream OpenStandardInput() => throw new PlatformNotSupportedException();
@@ -93,9 +95,9 @@ namespace System
 
         public static void SetConsoleInputEncoding(Encoding enc) => throw new PlatformNotSupportedException();
 
-        public static Encoding OutputEncoding => Encoding.Unicode;
+        public static Encoding OutputEncoding => s_outputEncoding ?? Encoding.UTF8;
 
-        public static void SetConsoleOutputEncoding(Encoding enc) => throw new PlatformNotSupportedException();
+        public static void SetConsoleOutputEncoding(Encoding enc) => s_outputEncoding = enc;
 
         public static bool IsInputRedirectedCore() => false;
 
index 29f6c3e..3ed2b5c 100644 (file)
@@ -312,14 +312,7 @@ public class ReadAndWrite
     public static void OutputEncoding_Getter_Returns_Unicode()
     {
         Encoding curEncoding = Console.OutputEncoding;
-        Assert.Equal(Encoding.Unicode, curEncoding);
-    }
-
-    [Fact]
-    [PlatformSpecific(TestPlatforms.Browser)]
-    public static void OutputEncoding_Setter_Throws_PlatformNotSupportedException()
-    {
-        Assert.Throws<PlatformNotSupportedException>(() => Console.OutputEncoding = Encoding.Unicode);
+        Assert.Equal(Encoding.UTF8, curEncoding);
     }
 
     [Fact]