View previous topic :: View next topic |
Author |
Message |
triod n00b
Joined: 24 Jan 2005 Posts: 14
|
Posted: Mon Jul 25, 2005 11:51 pm Post subject: |
|
|
Андрею.
По поводу корректного обозначения в ядре utf8. Сам интересовался этим вопросом достаточно интенсивно. Вот что удалось выяснить: оказывается, стандарт _вообще_не_определяет методику написания utf8, UTF8, utf-8, UTF-8.
У меня стоит так:
----------------------
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
-----------------------------------------------
То есть просто utf8.
По поводу фонтов в ЖТК. Поверхностный анализ показал вот что на примере ХММС:
ldd `which xmms`
linux-gate.so.1 => (0xffffe000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb7fb7000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb7fa0000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7f9b000)
libxmms.so.1 => /usr/lib/libxmms.so.1 (0xb7f88000)
libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0xb7e35000)
libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0xb7dfd000)
libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0xb7df9000)
libgthread-1.2.so.0 => /usr/lib/libgthread-1.2.so.0 (0xb7df6000)
libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0xb7dd2000)
libdl.so.2 => /lib/libdl.so.2 (0xb7dce000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7dbb000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb7db3000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb7da3000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7cd9000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7cb5000)
libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0xb7c86000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7b5d000)
/lib/ld-linux.so.2 (0xb7fcb000)
libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0xb7a62000)
Судя по всему хммс жтк 1.х таки использует.
Запуск с консоли дал такой результат:
xmms
Gdk-WARNING **: Missing charsets in FontSet creation
Gdk-WARNING **: JISX0208.1983-0
Gdk-WARNING **: KSC5601.1987-0
Gdk-WARNING **: GB2312.1980-0
Gdk-WARNING **: JISX0201.1976-0
Gdk-WARNING **: Missing charsets in FontSet creation
Gdk-WARNING **: ISO8859-1
Gdk-WARNING **: ISO8859-1
Gdk-WARNING **: JISX0208.1983-0
Gdk-WARNING **: KSC5601.1987-0
Gdk-WARNING **: GB2312.1980-0
Gdk-WARNING **: JISX0201.1976-0
Gdk-WARNING **: ISO10646-1
** WARNING **: Failed to open font: "-adobe-helvetica-bold-r-*-*-10-*".
**************************************************************************************
Фонты не читаемые _совсем_.
Судя по всему, локализация системы тут совершенно не причем. Копать надо настройки либо хммс либо жтк 1.х. Попахивает либо koi8r либо win1251. ВСЕ юникодовские шрифты в ихсах должны быть вида (согласно документации на иксорг)"-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1". В моём случае прога пытается использовать фонт, где русским юникодом и не пахнет. В этом вся и проблема. Помоему, нечто подобное и у Вас.
Может быть это и консервативно, но использую консольный mplayer _всегда_. Посему с xmms не разбирался детально, ибо не стоял остро вопрос.
С уважением |
|
Back to top |
|
|
ak74 n00b
Joined: 28 Jan 2005 Posts: 52
|
Posted: Tue Jul 26, 2005 10:44 am Post subject: |
|
|
У меня в ядре стоит "UTF8".
А по поводу xmms после ОЧЕНЬ длительного выяснения получилось, что виновата сборка xorg а не xmms и не gtk1.
И то что я писал раньше по поводу редактирование XLC_LOCALE эту проблему лечит.
Вот такая вот странная штука получается.
С уважением, Андрей. |
|
Back to top |
|
|
4nykey Apprentice
Joined: 11 Feb 2004 Posts: 176
|
Posted: Tue Jul 26, 2005 8:00 pm Post subject: |
|
|
triod wrote: | По поводу корректного обозначения в ядре utf8. Сам интересовался этим вопросом достаточно интенсивно. Вот что удалось выяснить: оказывается, стандарт _вообще_не_определяет методику написания utf8, UTF8, utf-8, UTF-8.
|
Не знаю насчёт стандарта, но доки говорят обратное Code: |
| CONFIG_NLS_DEFAULT:
│
│ The default NLS used when mounting file system. Note, that this is
│ the NLS used by your console, not the NLS used by a specific file
│ system (if different) to store data (filenames) on a disk.
│ Currently, the valid values are:
< snip >
│ koi8-r, koi8-ru, koi8-u, sjis, tis-620, utf8.
│ If you specify a wrong value, it will use the built-in NLS;
│ compatible with iso8859-1. |
С другой стороны, насколько я понял, это влияет на то, как консоль переваривает имена файлов на примаунченных фс по дефолту. Т.е к фонтам и виджетам как-будто безотносительно. |
|
Back to top |
|
|
SergDL n00b
Joined: 04 Apr 2005 Posts: 12
|
Posted: Tue Jul 26, 2005 8:55 pm Post subject: |
|
|
Я нашел для нормального отображения кириллицы в gtk1-приложениях под xorg-x11-6.8.2 выход только такой:
заменил XLC_LOCALE в /usr/lib/X11/locale/en_US.UTF-8/ на такой же из 6.8.0. Все прекрасно работает. |
|
Back to top |
|
|
kon Apprentice
Joined: 05 Mar 2004 Posts: 156 Location: Russia. Saint-Petersburg
|
Posted: Tue Jul 26, 2005 9:09 pm Post subject: |
|
|
Не могли бы Вы выложить куда нибудь
/usr/lib/X11/locale/en_US.UTF-8/ и
/usr/lib/X11/locale/ru_RU.UTF-8/ от xorg 6.8.0 ? |
|
Back to top |
|
|
triod n00b
Joined: 24 Jan 2005 Posts: 14
|
Posted: Tue Jul 26, 2005 9:28 pm Post subject: |
|
|
4nykey wrote: | triod wrote: | По поводу корректного обозначения в ядре utf8. Сам интересовался этим вопросом достаточно интенсивно. Вот что удалось выяснить: оказывается, стандарт _вообще_не_определяет методику написания utf8, UTF8, utf-8, UTF-8.
|
Не знаю насчёт стандарта, но доки говорят обратное Code: |
| CONFIG_NLS_DEFAULT:
│
│ The default NLS used when mounting file system. Note, that this is
│ the NLS used by your console, not the NLS used by a specific file
│ system (if different) to store data (filenames) on a disk.
│ Currently, the valid values are:
< snip >
│ koi8-r, koi8-ru, koi8-u, sjis, tis-620, utf8.
│ If you specify a wrong value, it will use the built-in NLS;
│ compatible with iso8859-1. |
С другой стороны, насколько я понял, это влияет на то, как консоль переваривает имена файлов на примаунченных фс по дефолту. Т.е к фонтам и виджетам как-будто безотносительно. |
C utf8 угадал
Но на самом деле чёткого определения utf8 в стандарте _нет_.
С уважением |
|
Back to top |
|
|
hlroad Tux's lil' helper
Joined: 28 Sep 2004 Posts: 105
|
Posted: Tue Jul 26, 2005 10:46 pm Post subject: |
|
|
triod wrote: | По поводу корректного обозначения в ядре utf8. Сам интересовался этим вопросом достаточно интенсивно. Вот что удалось выяснить: оказывается, стандарт _вообще_не_определяет методику написания utf8, UTF8, utf-8, UTF-8. |
Определяет. Но не в ядре. Вот тут или тут, пожалуйста. Так что "UTF-8" - хотя в большинстве протоколов charset задается строкой в ASCII, которая интерпретируется в case-insensetive mode, но когда задается локаль - то UTF-8 и только UTF-8, ни utf-8, ни UTF8 - не годятся. |
|
Back to top |
|
|
triod n00b
Joined: 24 Jan 2005 Posts: 14
|
Posted: Tue Jul 26, 2005 11:39 pm Post subject: |
|
|
hlroad wrote: | triod wrote: | По поводу корректного обозначения в ядре utf8. Сам интересовался этим вопросом достаточно интенсивно. Вот что удалось выяснить: оказывается, стандарт _вообще_не_определяет методику написания utf8, UTF8, utf-8, UTF-8. |
Определяет. Но не в ядре. Вот тут или тут, пожалуйста. Так что "UTF-8" - хотя в большинстве протоколов charset задается строкой в ASCII, которая интерпретируется в case-insensetive mode, но когда задается локаль - то UTF-8 и только UTF-8, ни utf-8, ни UTF8 - не годятся. |
Огромное Вам спасибо. Сам запомню и детей научу
C уважением. |
|
Back to top |
|
|
hlroad Tux's lil' helper
Joined: 28 Sep 2004 Posts: 105
|
Posted: Wed Jul 27, 2005 6:20 pm Post subject: |
|
|
triod wrote: | Огромное Вам спасибо. Сам запомню и детей научу
|
В действительности подстава в том, что соответствующие документы датированы ноябрём 2003 года (sic!). Соответственно в том, что выходило раньше - разброд и шатание . Подстава с utf-8 vs UTF-8 - в том, что многие программы просто проверяют наличие строки UTF-8 в locale и тогда только и включают поддержку. То есть сама glibc будет работать правильно во всех случаях, а вот уже, скажем, MC - нет. А вот в HTML'е можно указывать и "UTF-8" и "utf-8": там в стандарте прописано что сравнение case-insensitive и все программы (включая даже и MS IE) - честно всё реализуют. |
|
Back to top |
|
|
SergDL n00b
Joined: 04 Apr 2005 Posts: 12
|
Posted: Wed Jul 27, 2005 6:52 pm Post subject: |
|
|
для kon XLC_LOCALE из xorg 6.8.0.
cat /usr/lib/X11/locale/en_US.UTF-8/XLC_LOCALE
# $XFree86: xc/nls/XLC_LOCALE/en_US.UTF-8,v 1.2 2000/02/29 03:09:07 dawes Exp $
# XLocale Database Sample for en_US.UTF-8
#
#
# XLC_FONTSET category
#
XLC_FONTSET
on_demand_loading True
object_name generic
# fs0 class
fs0 {
charset {
name ISO10646-1
}
font {
primary ISO10646-1
}
}
# We leave the legacy encodings in for the moment, because we don't
# have that many ISO10646 fonts yet.
# fs1 class (7 bit ASCII)
fs1 {
charset {
name ISO8859-1:GL
}
font {
primary ISO8859-1:GL
vertical_rotate all
}
}
# fs2 class (ISO8859 families)
fs2 {
charset {
name ISO8859-1:GR
}
font {
primary ISO8859-1:GR
}
}
# fs3 class (Kanji)
fs3 {
charset {
name JISX0208.1983-0:GL
}
font {
primary JISX0208.1983-0:GL
}
}
# fs4 class (Korean Character)
fs4 {
charset {
name KSC5601.1987-0:GL
}
font {
primary KSC5601.1987-0:GL
}
}
# fs5 class (Chinese Han Character)
fs5 {
charset {
name GB2312.1980-0:GL
}
font {
primary GB2312.1980-0:GL
}
}
# fs6 class (Half Kana)
fs6 {
charset {
name JISX0201.1976-0:GR
}
font {
primary JISX0201.1976-0:GR
vertical_rotate all
}
}
END XLC_FONTSET
#
# XLC_XLOCALE category
#
XLC_XLOCALE
encoding_name UTF-8
mb_cur_max 6
state_depend_encoding False
# cs0 class
cs0 {
side GL:Default
length 1
ct_encoding ISO8859-1:GL
}
# cs1 class
cs1 {
side GR:Default
length 1
ct_encoding ISO8859-1:GR
}
# cs2 class
cs2 {
side GR
length 2
ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR; JISX0208.1983-1:GL; JISX0208.1983-1:GR
}
# cs3 class
cs3 {
side GL
length 2
ct_encoding KSC5601.1987-0:GL; KSC5601.1987-0:GR; KSC5601.1987-1:GL; KSC5601.1987-1:GR
}
# cs4 class
cs4 {
side GR
length 2
ct_encoding GB2312.1980-0:GL; GB2312.1980-0:GR
}
# cs5 class
cs5 {
side GR
length 1
ct_encoding JISX0201.1976-0:GR
}
# cs6 class
cs6 {
side none
ct_encoding ISO10646-1
}
END XLC_XLOCALE |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|