patch 8.2.2912: MS-Windows: most users expect using Unicode
Problem: MS-Windows: most users expect using Unicode.
Solution: Default 'encoding' to utf-8 on MS-Windows. (Ken Takata,
closes #3907)
diff --git a/src/mbyte.c b/src/mbyte.c
index e3d64ba..f3fdc32 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -4456,7 +4456,7 @@
// Use the default encoding as it's found by set_init_1().
r = get_encoding_default();
if (r == NULL)
- r = (char_u *)"latin1";
+ r = (char_u *)ENC_DFLT;
return vim_strsave(r);
}
diff --git a/src/option.c b/src/option.c
index 7c78375..6ca424e 100644
--- a/src/option.c
+++ b/src/option.c
@@ -430,14 +430,21 @@
# endif
# endif
+# ifdef MSWIN
+ // MS-Windows has builtin support for conversion to and from Unicode, using
+ // "utf-8" for 'encoding' should work best for most users.
+ p = vim_strsave((char_u *)ENC_DFLT);
+# else
// enc_locale() will try to find the encoding of the current locale.
+ // This works best for properly configured systems, old and new.
p = enc_locale();
+# endif
if (p != NULL)
{
char_u *save_enc;
// Try setting 'encoding' and check if the value is valid.
- // If not, go back to the default "latin1".
+ // If not, go back to the default encoding.
save_enc = p_enc;
p_enc = p;
if (STRCMP(p_enc, "gb18030") == 0)
diff --git a/src/option.h b/src/option.h
index 30053cc..7be729a 100644
--- a/src/option.h
+++ b/src/option.h
@@ -127,7 +127,11 @@
#define ENC_UCSBOM "ucs-bom" // check for BOM at start of file
// default value for 'encoding'
-#define ENC_DFLT "latin1"
+#ifdef MSWIN
+# define ENC_DFLT "utf-8"
+#else
+# define ENC_DFLT "latin1"
+#endif
// end-of-line style
#define EOL_UNKNOWN -1 // not defined yet
diff --git a/src/testdir/test_writefile.vim b/src/testdir/test_writefile.vim
index e94071f..9200f2b 100644
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -501,7 +501,7 @@
CheckMSWindows
let save_encoding = &encoding
let save_fileencodings = &fileencodings
- set encoding& fileencodings&
+ set encoding=latin1 fileencodings&
let text =<< trim END
1 utf-8 text: Для Vim version 6.2. Последнее изменение: 1970 Jan 01
2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01
diff --git a/src/version.c b/src/version.c
index 0a82a96..d651bda 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2912,
+/**/
2911,
/**/
2910,