我發現在 UTF-8 的環境下,
原本在 Big5 裡的『~』符號會變成『∼』,
導致在 MS Microsoft 裡會看不到這個字,
而在 IceWM 的標題裡也看不到...
在 konqueror 裡也看不到...
(只能看到 □...)
是 glibc 的問題嗎?
是否該做 Bug Report 呢?
Tetralet 寫:我發現在 UTF-8 的環境下,
原本在 Big5 裡的『~』符號會變成『∼』,
導致在 MS Microsoft 裡會看不到這個字,
而在 IceWM 的標題裡也看不到...
在 konqueror 裡也看不到...
(只能看到 □...)
是 glibc 的問題嗎?
是否該做 Bug Report 呢?
edt1023:~$ zcat /usr/share/i18n/charmaps/BIG5.gz | grep 'xa1/xe3'
<UFF5E> /xa1/xe3 FULLWIDTH TILDE
∼ U+223C
edt1023:~$ echo '~' | recode big5..ucs2/x2
0x223C, 0x000A
edt1023:~$ echo '~' | recode cp950..ucs2/x2
0xFF5E, 0x000A
edt1023:~$ echo '~' | recode u8..ucs2/x2
0xFF5E, 0x000A
Edward G.J. Lee 寫:不清楚這算不算是 bug?
‥ … ‘ ’ “ ” ‵ ′
※ § ℅ ♀ ♂ ¥ ° ℃ ℉ ○
● △ ▲ ◎ ☆ ★ ◇ ◆ □ ■ ▽ ▼ ♁ ☉
√ ≦ ≧ ≠ ∞ ≒ ≡ ∼ ∩ ∪ ⊥ ∠ ∟ ⊿ ∫ ∮ ∵ ∴
↑ ↓ ← → ↖ ↗ ↙ ↘ ∥ ∣ ╳
Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ
▁ ▂ ▃ ▄ ▅ ▆ ▇ █▏ ▎ ▍ ▌ ▋ ▊ ▉ ◢ ◣ ◥ ◤
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
‥ … ‘ ’ “ ” ‵ ′
※ § ℅ ♀ ♂ ¥ ° ℃ ℉ ○
● △ ▲ ◎ ☆ ★ ◇ ◆ □ ■ ▽ ▼ ⊕ ⊙
√ ≦ ≧ ≠ ∞ ≒ ≡ ~ ∩ ∪ ⊥ ∠ ∟ ⊿ ∫ ∮ ∵ ∴
↑ ↓ ← → ↖ ↗ ↙ ↘ ∥ ∣ ╳
Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ
▁ ▂ ▃ ▄ ▅ ▆ ▇ █▏ ▎ ▍ ▌ ▋ ▊ ▉ ◢ ◣ ◥ ◤
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
Tetralet 寫:Edward G.J. Lee 寫:不清楚這算不算是 bug?
我覺得是 bug 耶?
edt1023:~$ zcat /usr/share/i18n/charmaps/BIG5-HKSCS.gz | grep 'xa1/xe3'
<U223C> /xa1/xe3 TILDE OPERATOR
edt1023:~$ echo '~' | iconv -fbig5 -tutf8 | recode u8..ucs2/x2
0xFF5E, 0x000A
edt1023:~$ echo '~' | iconv -fcp950 -tutf8 | recode u8..ucs2/x2
0xFF5E, 0x000A
edt1023:~$ echo '~' | iconv -fbig5hkscs -tutf8 | recode u8..ucs2/x2
0x223C, 0x000A
因為使用 unifont 來查看時,
『∼』(較小那一個)
會變成半型字。
請問,
如果要自行修改的話,
要從哪裡著手呢?
(我很自作聰明得讓 BIG5-HKSCS.gz 指向 BIG5.gz。不過沒有作用...)
‧ ﹑ ╴ ¯  ̄ ˍ ~ ⊕ ⊙ / ∕ ﹨ ¥ ¢ £
十 卅 碁 銹 裏 墻 恒 粧 嫺
╔ ╦ ╗ ╠ ╬ ╣ ╚ ╩ ╝ ╒ ╤ ╕ ╞ ╪ ╡ ╘ ╧ ╛
╓ ╥ ╖ ╟ ╫ ╢ ╙ ╨ ╜ ║ ═ ╭ ╮ ╰ ╯ ▓
• 、 � ‾ � � ∼ ♁ ☉ � / \ ¥ ¢ £
十 卅 � � � � � � �
� � � � � � � � � � � � ╞ ╪ ╡ � � �
� � � � � � � � � � ═ ╭ ╮ ╰ ╯ �
Edward G.J. Lee 寫:能說明是什麼悄況下發生的嗎?
Tetralet 寫:Edward G.J. Lee 寫:能說明是什麼悄況下發生的嗎?
在我發現 iconv 這個好物之前,
我都是用 autob5 這個程式來轉碼的,
兩者轉碼結果有時並不相同。
而我的 xcin 是使用 [分享] 打造 Unicode 的環境 裡所介紹的方式在 zh_TW.UTF-8 的 Locale 下運行的,
也會出現這個問題。
Edward G.J. Lee 寫:請愛用 iconv。因為他是根據 glibc 的對應表格,而這個表格是小虫及居士合作製作的,所以細節的部份會比較符合我們的習慣。如果怕有些字轉不出來(通常是我們的 Big5 中沒有收錄這些字),可另外加上 iconv -c 參數。
建議改用 gcin-0.4.9 或 utf8 patche 過的 xcin。
作者 Edward (L.G.J.) 站內 Edward
標題 Re: BIG5(CP950) vs. BIG5-HKSCS
時間 Thu Nov 4 00:47:52 2004
───────────────────────────────────────
※ 引述《Edward (L.G.J.)》之銘言:
> ps.請參考:
> http://moto.debian.org.tw/viewtopic.php?t=4744
> 的討論,據我所知 mozilla 就有可能把其中一些 BIG5 的字弄成是 BIG5-HKSCS
> 的對應。大概要看原 post 看是在什麼清況下造成的。基本上 glibc 的表格
> 應該是正確的(但應該是說正確的 CP950)。
答案揭曉。原來是使用于廣輝的 autoconvert 轉的。
Big5 的部份是 foka 在修正的,so...
請大家愛用 iconv 來轉檔,因為他是根據 glibc 的表格,而 glibc
的表格就是小虫和居士合作生產的啦!:)
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 218-169-141-240.dynamic.hinet.net
文章選讀 (y)回應 (=\[]<>-+;'`jk)相關主題 (/?)搜尋標題 (aA)搜尋作者 (T)解碼
Edward G.J. Lee 寫:而我的 xcin 是使用 [分享] 打造 Unicode 的環境 裡所介紹的方式在 zh_TW.UTF-8 的 Locale 下運行的,
也會出現這個問題。
建議改用 gcin-0.4.9 或 utf8 patche 過的 xcin。
$ dpkg -l | grep gcin
ii gcin 0.4.9-1 Another Chinese input server in X11 with phone
export LC_CTYPE=zh_TW.UTF-8
export LC_MESSAGES=zh_TW.UTF-8
export XMODIFIERS="@im=gcin"
exec /usr/bin/gcin &
echo '~' | iconv -fcp950 -tutf8 | recode u8..ucs2/x2
0xFF5E, 0x000A
echo '⊙' | iconv -fcp950 -tutf8 | recode u8..ucs2/x2
0x2299, 0x000A
echo '⊕' | iconv -fcp950 -tutf8 | recode u8..ucs2/x2
0x2295, 0x000A
echo '∼' | recode u8..ucs2/x2
0x223C, 0x000A
echo '☉' | recode u8..ucs2/x2
0x2609, 0x000A
echo '♁' | recode u8..ucs2/x2
0x2641, 0x000A
export LC_ALL=zh_TW.UTF-8
export XMODIFIERS=@im=xcin.UTF-8
LANG=zh_TW.UTF-8
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER=zh_TW.UTF-8
LC_NAME=zh_TW.UTF-8
LC_ADDRESS=zh_TW.UTF-8
LC_TELEPHONE=zh_TW.UTF-8
LC_MEASUREMENT=zh_TW.UTF-8
LC_IDENTIFICATION=zh_TW.UTF-8
LC_ALL=
LANG=zh_TW.UTF-8
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=zh_TW.UTF-8
Tetralet 寫:對不起,我沒把問題說清楚...
如果將 Locale 設定如下:
(只有 LC_ALL= 沒有設定為 zh_TW.UTF-8)
- 代碼: 選擇全部
LANG=zh_TW.UTF-8
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8
LC_COLLATE=zh_TW.UTF-8
LC_MONETARY=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8
LC_PAPER=zh_TW.UTF-8
LC_NAME=zh_TW.UTF-8
LC_ADDRESS=zh_TW.UTF-8
LC_TELEPHONE=zh_TW.UTF-8
LC_MEASUREMENT=zh_TW.UTF-8
LC_IDENTIFICATION=zh_TW.UTF-8
LC_ALL=
則 gcin 所輸出的 "∼" 是 U+223C;
--- gcin.c.orig 2004-11-05 10:14:33.000000000 +0800
+++ gcin.c 2004-11-05 17:22:38.000000000 +0800
@@ -406,8 +406,8 @@
strcpy(xim_arr[0].xim_server_name, xim_server_name);
strcpy(xim_arr[1].xim_server_name, xim_server_name);
- if ((locale_str=getenv("LC_ALL")) && !strcmp(locale_str, "zh_TW.UTF-8")) {
- dbg("LC_ALL=%s, gcin will use UTF-8\n", locale_str);
+ if ((locale_str=getenv("LC_CTYPE")) && !strcmp(locale_str, "zh_TW.UTF-8")) {
+ dbg("LC_CTYPE=%s, gcin will use UTF-8\n", locale_str);
xim_arr[0].b_send_utf8_str = TRUE;
xim_arr[1].b_send_utf8_str = FALSE;
@@ -425,8 +425,8 @@
p_err(" version %s\n", GCIN_VERSION);
}
- setlocale(LC_ALL, gcin_db_locale);
- setenv("LC_ALL", gcin_db_locale, TRUE);
+ setlocale(LC_CTYPE, gcin_db_locale);
+ setenv("LC_CTYPE", gcin_db_locale, TRUE);
exec_setup_scripts();
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客