forked from aniani/vim
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)
This commit is contained in:
parent
e71c0ebe2c
commit
f883d9027c
@ -2828,7 +2828,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|setcellwidths()| function to change the behavior.
|
||||
|
||||
*'encoding'* *'enc'* *E543*
|
||||
'encoding' 'enc' string (default: "latin1" or value from $LANG)
|
||||
'encoding' 'enc' string (default for MS-Windows: "utf-8",
|
||||
otherwise: value from $LANG or "latin1")
|
||||
global
|
||||
Sets the character encoding used inside Vim. It applies to text in
|
||||
the buffers, registers, Strings in expressions, text stored in the
|
||||
|
@ -4456,7 +4456,7 @@ enc_canonize(char_u *enc)
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
@ -430,14 +430,21 @@ set_init_1(int clean_arg)
|
||||
# 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)
|
||||
|
@ -127,7 +127,11 @@ typedef enum {
|
||||
#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
|
||||
|
@ -501,7 +501,7 @@ func Test_write_file_encoding()
|
||||
CheckMSWindows
|
||||
let save_encoding = &encoding
|
||||
let save_fileencodings = &fileencodings
|
||||
set encoding& fileencodings&
|
||||
set encoding=latin1 fileencodings&
|
||||
let text =<< trim END
|
||||
1 utf-8 text: ДлÑ<EFBFBD> Vim version 6.2. ПоÑ<EFBFBD>леднее изменение: 1970 Jan 01
|
||||
2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2912,
|
||||
/**/
|
||||
2911,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user