|
From: Tatsuro M. <tma...@ya...> - 2021-12-16 22:57:17
|
Ethan
Thank you for your detailed explanation.
I surely have misunderstood the situation.
> So I think that to change the initial encoding in gnuplot, the user needs to either
> (1) set an appropriate environmental variable global to the session or
> (2) set the code page to CP65001.
>
> Is there a good place to find instructions on how to do this?
> Should we add a section to the installation instructions or the user manual?
Behavior cp65001 of current windows 10 is changed before.
past :Japanese font cannot be selected .IME input of Japanese characters is impossible
now : Japanese font can be selected. IME input Japanese characters is possible.
I do not know when the above change ocurr.
I think that the user manual is appropriate.
Tatsuro
> ----- Original Message -----
>
>
> On Thursday, 16 December 2021 11:50:25 PST Tatsuro MATSUOKA wrote:
> > We consider the case where there is no "set encoding xxxx" in GNUPLOT.INT and GNUTERM is not specified.
> > At start up, excution result of "show encoding"
> > Cygwin => default (Perhaps on Linux the same)
> > Windows (on Japanese env.) => sjis (ShiftJIS, old Japanese encording)
> > Windows (not Japanese env.) => I do not know
> >
> > Now even on Windows standard text editor notepad.exe, default encoding is utf8 but not sjis.
> > Sjis encording is only for backward compatibility.
>
> Are you sure this is set by the program and not by the system or user preferences?
>
> > sjis being default encoding on windows on Japanese env. is better to be stopped.
>
> So far as I know gnuplot would only start with encoding SJIS if the user's computer
> has current locale set to use sjis.
>
> Gnuplot's initialization is done in routine encoding_from_locale() in file encoding.c.
>
> It first tries to use the system function
> l = setlocale(LC_CTYPE, "");
>
> The man page says
> If locale is an empty string, "", each part of the locale that should be modified is
> set according to the environment variables. The details are implementation-dependent.
> For glibc, first (regardless of category), the environment variable LC_ALL is in‐
> spected, next the environment variable with the same name as the category (see the ta‐
> ble above), and finally the environment variable LANG. The first existing environment
> variable is used. If its value is not a valid locale specification, the locale is un‐
> changed, and setlocale() returns NULL.
>
> On linux an appropriate japanese locale string is "ja_JP.UTF-8"
> but I know that Windows uses different names for locales.
>
> Do you know if your Japanese env. machine is returning a valid locale specification at this
> point? If so, that is what gnuplot will use. If no valid return is detected, the program
> then falls through to this code:
> #ifdef _WIN32
> /* get encoding from currently active codepage */
> if (encoding == S_ENC_INVALID) {
> #ifndef WGP_CONSOLE
> encoding = map_codepage_to_encoding(GetACP());
> #else
> encoding = map_codepage_to_encoding(GetConsoleCP());
> #endif
> }
> #endif
>
> So I think that to change the initial encoding in gnuplot, the user needs to either
> (1) set an appropriate environmental variable global to the session or
> (2) set the code page to CP65001.
>
> Is there a good place to find instructions on how to do this?
> Should we add a section to the installation instructions or the user manual?
>
>
>
>
>
>
>
|