[9c90b1b] | 1 | <?xml version="1.0" encoding="ISO-8859-1"?>
|
---|
| 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
---|
| 3 | "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
|
---|
| 4 | <!ENTITY % general-entities SYSTEM "../../general.ent">
|
---|
| 5 | %general-entities;
|
---|
| 6 | ]>
|
---|
| 7 |
|
---|
| 8 | <sect1 id="locale-issues" xreflabel="Locale Related Issues">
|
---|
| 9 | <?dbhtml filename="locale-issues.html"?>
|
---|
| 10 |
|
---|
| 11 | <sect1info>
|
---|
[3cd5c69] | 12 | <othername>$LastChangedBy$</othername>
|
---|
| 13 | <date>$Date$</date>
|
---|
[9c90b1b] | 14 | </sect1info>
|
---|
| 15 |
|
---|
| 16 | <title>Locale Related Issues</title>
|
---|
| 17 |
|
---|
| 18 | <para>This page contains information about locale related problems and
|
---|
| 19 | issues. In this paragraph you'll find a generic overview of things that can
|
---|
| 20 | come up when configuring your system for various locales. The previous
|
---|
| 21 | sentence and the remainder of this paragraph must still be
|
---|
| 22 | revised/completed.</para>
|
---|
| 23 |
|
---|
| 24 | <sect2>
|
---|
| 25 |
|
---|
| 26 | <title>Package Specific Locale Issues</title>
|
---|
| 27 |
|
---|
| 28 | <para>For package specific issues, find the concerned package from the list
|
---|
| 29 | below and follow the link to view the available information. If a package
|
---|
| 30 | is not listed here, it means there are no known locale specific issues or
|
---|
| 31 | problems with that package.</para>
|
---|
| 32 |
|
---|
| 33 | <itemizedlist>
|
---|
| 34 |
|
---|
| 35 | <title>List of Packages with Locale Related Issues</title>
|
---|
| 36 |
|
---|
[3cd5c69] | 37 | <listitem>
|
---|
| 38 | <para><xref linkend="locale-mc"/></para>
|
---|
| 39 | </listitem>
|
---|
[9c90b1b] | 40 | <listitem>
|
---|
| 41 | <para><xref linkend="locale-unzip"/></para>
|
---|
| 42 | </listitem>
|
---|
| 43 |
|
---|
| 44 | </itemizedlist>
|
---|
| 45 |
|
---|
[3cd5c69] | 46 | <sect3 id="locale-mc" xreflabel="MC-&mc-version;">
|
---|
| 47 |
|
---|
| 48 | <title><xref linkend="mc"/></title>
|
---|
| 49 |
|
---|
| 50 | <para>This package makes the assumption that <quote>characters</quote>
|
---|
| 51 | and <quote>bytes</quote> are the same thing. This is not true in UTF-8
|
---|
| 52 | based locales. Due to this assumption <application>MC</application> will
|
---|
| 53 | incorrectly position characters on the screen. After the cursor is moved
|
---|
| 54 | a bit the screen becomes totally unreadable, as illustrated on
|
---|
[60a31248] | 55 | <ulink url="&files-anduin;/mc-bad.png">this
|
---|
[3cd5c69] | 56 | screenshot</ulink> (taken in a ru_RU.UTF-8 locale). Additionally, input
|
---|
| 57 | of non-ASCII characters in the editor is impossible, even after selecting
|
---|
| 58 | <quote>Other 8-bit</quote> encoding from the menu.</para>
|
---|
| 59 |
|
---|
| 60 | </sect3>
|
---|
| 61 |
|
---|
[9c90b1b] | 62 | <sect3 id="locale-unzip" xreflabel="UnZip-&unzip-version;">
|
---|
| 63 |
|
---|
| 64 | <title><xref linkend="unzip"/></title>
|
---|
| 65 |
|
---|
| 66 | <note>
|
---|
| 67 | <para>Use of <application>UnZip</application> in the
|
---|
| 68 | <application>JDK</application>, <application>Mozilla</application>,
|
---|
[c151abf] | 69 | <application>DocBook</application> or any other BLFS package
|
---|
| 70 | installation is not a problem, as BLFS instructions never use
|
---|
[9c90b1b] | 71 | <application>UnZip</application> to extract a file with non-ASCII
|
---|
[c151abf] | 72 | characters in the file's name.</para>
|
---|
[9c90b1b] | 73 | </note>
|
---|
| 74 |
|
---|
| 75 | <para>The <application>UnZip</application> package assumes that filenames
|
---|
| 76 | stored in the ZIP archives created on non-Unix systems are encoded in
|
---|
| 77 | CP850, and that they should be converted to ISO-8859-1 when writing files
|
---|
| 78 | onto the filesystem. Such assumptions are not always valid. In fact,
|
---|
| 79 | inside the ZIP archive, filenames are encoded in the DOS codepage that is
|
---|
| 80 | in use in the relevant country, and the filenames on disk should be in
|
---|
| 81 | the locale encoding. In MS Windows, the OemToChar() C function (from
|
---|
| 82 | <filename>User32.DLL</filename>) does the correct conversion (which is
|
---|
| 83 | indeed the conversion from CP850 to a superset of ISO-8859-1 if MS
|
---|
| 84 | Windows is set up to use the US English language), but there is no
|
---|
| 85 | equivalent in Linux.</para>
|
---|
| 86 |
|
---|
| 87 | <para>When using <command>unzip</command> to unpack a ZIP archive
|
---|
| 88 | containing non-ASCII filenames, the filenames are damaged because
|
---|
[c151abf] | 89 | <command>unzip</command> uses improper conversion when any of its
|
---|
| 90 | encoding assumptions are incorrect. For example, in the ru_RU.KOI8-R
|
---|
| 91 | locale, conversion of filenames from CP866 to KOI8-R is required, but
|
---|
| 92 | conversion from CP850 to ISO-8859-1 is done, which produces filenames
|
---|
| 93 | consisting of undecipherable characters instead of words (the closest
|
---|
| 94 | equivalent understandable example for English-only users is rot13). There
|
---|
| 95 | are several ways around this limitation:</para>
|
---|
[9c90b1b] | 96 |
|
---|
| 97 | <para>1) For unpacking ZIP archives with filenames containing non-ASCII
|
---|
| 98 | characters, use <ulink url="http://www.winzip.com/">WinZip</ulink> while
|
---|
| 99 | running the <ulink url="http://www.winehq.com/">Wine</ulink> Windows
|
---|
| 100 | emulator.</para>
|
---|
| 101 |
|
---|
| 102 | <para>2) After running <command>unzip</command>, fix the damage made to
|
---|
| 103 | the filenames using the <command>convmv</command> tool
|
---|
| 104 | (<ulink url="http://j3e.de/linux/convmv/"/>). The following is an example
|
---|
| 105 | for the ru_RU.KOI8-R locale:</para>
|
---|
| 106 |
|
---|
| 107 | <blockquote>
|
---|
| 108 | <para>Step 1. Undo the conversion done by
|
---|
| 109 | <command>unzip</command>:</para>
|
---|
| 110 |
|
---|
| 111 | <screen><userinput>convmv -f iso-8859-1 -t cp850 -r --nosmart --notest \
|
---|
| 112 | <replaceable>[/path/to/unzipped/files]</replaceable></userinput></screen>
|
---|
| 113 |
|
---|
| 114 | <para>Step 2. Do the correct conversion instead:</para>
|
---|
| 115 |
|
---|
| 116 | <screen><userinput>convmv -f cp866 -t koi8-r -r --nosmart --notest \
|
---|
| 117 | <replaceable>[/path/to/unzipped/files]</replaceable></userinput></screen>
|
---|
| 118 | </blockquote>
|
---|
| 119 |
|
---|
| 120 | <para>3) Apply this patch to unzip:
|
---|
| 121 | <ulink url="https://bugzilla.altlinux.ru/attachment.cgi?id=532"/></para>
|
---|
| 122 |
|
---|
| 123 | <para>It allows to specify the assumed filename encoding in the ZIP
|
---|
| 124 | archive using the <option>-O charset_name</option> option and the
|
---|
| 125 | on-disk filename encoding using the <option>-I charset_name</option>
|
---|
| 126 | option. Defaults: the on-disk filename encoding is the locale encoding,
|
---|
| 127 | the encoding inside the ZIP archive is guessed according to the builtin
|
---|
| 128 | table based on the locale encoding. For US English users, this still
|
---|
| 129 | means that unzip converts from CP850 to ISO-8859-1 by default.</para>
|
---|
| 130 |
|
---|
| 131 | <para>Caveat: this method works only with 8-bit locale encodings, not
|
---|
| 132 | with UTF-8. Attempting to use a patched <command>unzip</command> in UTF-8
|
---|
| 133 | locales may result in a segmentation fault and is probably a security
|
---|
| 134 | risk.</para>
|
---|
| 135 |
|
---|
| 136 | </sect3>
|
---|
| 137 |
|
---|
| 138 | </sect2>
|
---|
| 139 |
|
---|
| 140 | </sect1>
|
---|