logo
 
WebChain/2 Previous Ramdom Jump WebChain/2 Home Next
 メインメニュー
 サイト内検索

検索オプション
 ログイン
ユーザID または e-mail:

パスワード:

IDとパスワードを記憶

パスワード紛失

新規登録
 IRC(チャット)
#OS/2:*.jp
楽しみ方はこの辺参照.
フォーラム一覧   -   トピック一覧
   アプリ
     「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national langua
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
orca
投稿日時: 04/06/30 08:48
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national langua
bugzilla に投稿されているこの問題, Firefox 0.9 やら Mozilla 1.7 での Webページの文字化け問題とも絡んでそーれす。
指摘してる人のアレでは, さらに何か含んでるっぽいし, Mozilla 1.7 問題のすべてって訳じゃないので, 新しいスレッドにしてみたです。

We're not going to reopen the font code to fix any problems.
いずれかの問題を解決する font code を再開するつもりはない
Basically the problem is that OS/2 has horrible Unicode support.
基本的に, OS/2 が持つ恐ろしげな Unicode サポートが問題


で, InnoTek Font Engine を導入して, 環境変数 MOZILLA_USE_EXTENDED_FT2LIB=T で, とりあえず問題は解決するカモ。
でも, その後のコメントが何ゆってんのか追いつけないれす。 少しでも分かる人 お願いします。

んー, コレってホントに OS/2 の「Unicode サポート」が変ってことなのでしょーか。それに, InnoTek Font Engine のフォントって その「Unicode サポート」と切り放すことはできないのでしょーか。
その部分だけ取り出して, Mozilla for OS/2 にアレしてほしいけど ・・・ (ゆーのは簡単だけれど)
achain
投稿日時: 04/06/30 09:50
Webmaster
登録日: 03/01/26
居住地: とーきょー じゃぺーん
投稿: 2597
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
後半技術的な内容になってきて私もよく分かりません.
取り敢えず「この問題も同じ?」と横槍を入れておきました.

OS/2のUnicodeサポートがかなりアレだとMike氏が常々愚痴っていますが,実際のところはよく分かりません.しかし今我々が抱えている文字化け問題は少なくとも1.7aには無かったので,修理不可能とは思いません.「あっちを立てればこっちが立たず」問題である可能性はあるかもしれませんが.
 ジャポネーゼ「日本語化け直ったーありがとう」
 ヨーロピアン「Euroマークが出なくなったぞコンチクショー」
みたいな.
achain
投稿日時: 04/07/01 00:47
Webmaster
登録日: 03/01/26
居住地: とーきょー じゃぺーん
投稿: 2597
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
BugzillaにMike氏のコメントが付きました.
「その問題は違う問題だ」
「その問題は直せない」
「InnotekのFont Engineを使うしか回避方法はない」
とのこと.
ちょっと納得がいきませんが,確かにInnotek FOnt Engineを使うと正常に表示されますね.(っていうか使っているフォントが適切なだけと言う気もしないでもないけど…).

もうちょっと突っ込んだほうが良いのでしょうか?
取り敢えず自力で直せるかどうかは分からなくとも,「なぜ1.7aまでは大丈夫だったのか」「純粋なlatin-1 supplement characterだけでなくSHift_JISな記号文字の一部も化けるのだがどう思うか」「コードを見るとしたらどの辺か」あたりは聞いてみたい気もしますが….

# FontEngine使うと今度は「…」が下付きで表示されるわ(涙)
min
投稿日時: 04/07/01 01:42
Home away from home
登録日: 03/01/27
居住地: 兵庫県尼崎市/このアバターは日本システムサプライの著作物です
投稿: 227
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
気付いてると思いますけど。
使っているフォントが適切なだけと言う気もしないでもないけど
というか、InnotekFontEngineを有効にして、環境変数MOZILLA_USE_EXTENDED_FT2LIB=Tを設定した場合、

(1)Mozilla/preference/appearance/Fonts の設定が効いていないように見える
 →全てTimesNewRomanWTJ/MonoSansDuospaceWTJが使用されているような気がする
(2)Mozilla/preference/appearance/Fonts のフォント名が化けるのはなおらない

気がします。別の問題(フォントが指定/設定できない)が発生している(?)ような。
(そういう環境変数なんでしょうか?)

いろいろ気になるのは気になる(Mikeさんの)回答ですね。

#Mozilla.exeに対するFontEngine有効設定と、環境変数の両方ともONに
#しないと、×(バツ)は、ラ変わらずですね。何が起こってるのかよくわからん・・・
Anonymous
投稿日時: 04/07/01 04:13
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
うちの環境ではMozilla/preference/appearance/Fontsの設定効いていますが
MS UI Gothic指定しているけどAAが崩れずに表示されとります。
(2)のほうは同様に化けたままですけど
orca
投稿日時: 04/07/01 10:26
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
langを変更
Web ページの表示と, Mozilla自体(=PMプログラム?)の表示とは, 問題が異なるです。
InnoTek Font Engine は前者をどーにかするもの。
URLバーや statusバーや フォント指定の dialogは後者の問題で, 別に, フォントを指定するとき その選択肢が anti-aliasing 表示になってる訳じゃないと思うです。

んで, bookmarklet 作ってみました。
準備として, ブックマークにどれかを登録しといて (全部でも構わないけど) ・・・
てきとーな Webページを開いておいて, そこでおもむろにブックマーク一覧から実行したいのを選ぶ, と。

言語を jpに: java script: document.body.setAttribute('lang', 'jp') ← 'jp'って言語コード無いので間違い
言語を変更: java script: document.body.setAttribute('lang', prompt('lang? (ja, en, ...)'))
言語指定を取り除く: java script: document.body.removeAttribute('lang')

# javascript を空白を開けずに書き込んでも, 間に空白が入ってしまうです。
# bookmarkに登録するときは, 間の空白を取り除いておいてくらはい

言語を jp にするだけで, 問題は解決しているよーな気がするです。

追記:
って, 日本の言語コードは ja だったですね
DBCS なトコの言語コード 以外を指定するとうまくいく, て感じ?
参考: http://www.kanzaki.com/docs/html/lang.html

訂正:
国コードって書いてたトコ → 言語コード
min
投稿日時: 04/07/01 10:39
Home away from home
登録日: 03/01/27
居住地: 兵庫県尼崎市/このアバターは日本システムサプライの著作物です
投稿: 227
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
あう。
Mozilla/preference/appearance/Fontsの 設定効きますね。
私は何をみてたんだろう。。。。(汗
orca
投稿日時: 04/07/01 23:26
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
achainさんは書きました:
もうちょっと突っ込んだほうが良いのでしょうか?
取り敢えず自力で直せるかどうかは分からなくとも,「なぜ1.7aまでは大丈夫だったのか」「純粋なlatin-1 supplement characterだけでなくSHift_JISな記号文字の一部も化けるのだがどう思うか」「コードを見るとしたらどの辺か」あたりは聞いてみたい気もしますが….

なんとなくだけど, DBCS, Shift_JISの理解に誤解があるのでは? とか思ってしまうです。 その部分を通して Unicodeを見てみると, 間違った物に見えてしまうかも。
でも, Mozilla の該当するコードを読んでみた訳でも, ましてや加工した訳でも ないので, そんなことゆってる σ(^^) が間違ってるかもだけど。

DBCS圏のソレを lang に指定してると (明示的にしろ暗黙的にしろ), ソレが元で化けてるっぽくて, そうでなければ大丈夫みたいれす。
少なくともそのことは反論してみたい気がするです。

> なぜ1.7aまでは大丈夫だったのか
大丈夫とゆーか, 問題のある文字が少なかったって感じなので, できればすべての文字を正しく表示してほしいかも。
orca
投稿日時: 04/07/01 23:44
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: langを変更
で, 「lang に DBCS圏の言語指定(ja とか ko とか)が入ってるとダメで, そうでなければ大丈夫みたい。」
てのは, 英語でどーゆーのでしょー。
この部分, 機械翻訳では限界のよーに思えるです。
achain
投稿日時: 04/07/06 22:33
Webmaster
登録日: 03/01/26
居住地: とーきょー じゃぺーん
投稿: 2597
Re: langを変更
直訳的に言うならば

Mozilla breaks those characters if Asian locale (ja, ko or other DBCS regions) is specified in LANG statement. Otherwise, no problem.

てな感じでしょうか.
というか…織華さんの言わんとするところをまだ完全に理解出来ていません(汗)<me
orca
投稿日時: 04/07/07 01:55
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: langを変更
言わんとしていることは, つか, まとめてみると ・・・

まず, Mozilla内部は Unicodeで管理してるとゆーのを前提にして (ソース見たことないので, ここでは仮定てことで)

Mozillaが行っていることを推測すると, こんな感じだと思うです。
1. 指定のページを読み込む。 このとき(ヘッダーにある)サーバーから送られた文字コードでアレする (Shift_JISとか JISコードとか EUC-JPとか)
2. 内部に Unicodeとして蓄える
3. 出力(表示)する。このとき, その OSがサポートしているエンコーディグ(?)で ・・・

# サーバーからの応答にないばーいは charset=, あるいは [Character Encoding][Auto-Detect] で

たとえば, こんな風になるです (最終的には Shift_JIS)
「あ」→ 12354 ("\u3042") → 0x82 0xA0
「亜」→ 20124 ("\u4e9c") → 0x88 0x9F

んで, 本来なら
「±」→ 177 ("\u00b1") → 0x81 0x7D
横線 → (まだ調べきれてない)

でも, 起こっている現象は, Unicodeのある範囲において Shift_JISに置き換えることなく出力してるよーにさえ見える, みたいな。
「±」→ 0xb1 (半角カナの「ア」)
ほかにも 3桁, あるいは 4桁の Unicodeのとこであっても一部が表示されない訳れす (つか, 何かと間違えられている感じ)

で, 言語コードが ja とか ko とかだと(↑)こんな感じだけど, 以下のよーにすると大丈夫っぽい (今のところ)。
java script:document.body.setAttribute('lang','x-klingon')

つまり, 言語コード=ja (あるいは DBCS圏) なら, ソレを間違って OSにまかせて (Unicode渡して)しまってるのカモ, てことれす。
言語コードはホントはこんな(↓)感じれす。

例えば、諾威(ノルウェイ)語文書の中で <span lang="FR">C'est la vie.</span> と書くことが出来ます

参考:
http://www.ietf.org/rfc/rfc3066.txt
http://suika.fam.cx/~wakaba/-temp/wiki/wiki?RFC3066

言語コード=ja は, 出力寸前に使う物ではないのじゃないか, てことれす。
あるいは, OS/2の Unicodeサポートが変ってのは, 日本語版 OS/2とかは Shift_JISなんだし, 変に見えるカモだけど そんなものかもね, とも。

訂正:
最後のトコ, もともと「言語コード=ja は Unicodeに変換するときに」て書いてたけど書き間違い。
たぶん, そのとき考えてた意味は 2つ。内部コードに変換されたのを出力寸前, 再度 Shift_JISに関する処理が行われてるのは変てこと。んで, lang属性は (その部分ではなく)もっと別なトコで使うもののはず, ってことれす。
min
投稿日時: 04/07/07 11:12
Home away from home
登録日: 03/01/27
居住地: 兵庫県尼崎市/このアバターは日本システムサプライの著作物です
投稿: 227
Re: langを変更

んで, 本来なら
「±」→ 177 ("\u00b1") → 0x81 0x7D
横線 → (まだ調べきれてない)


横棒は、
「―」→ ("\u2015") → ?
0x815C 0x2015 #HORIZONTAL BAR

ひそかにま〜りんちゃん問題のとき、話題に上がってる文字のひとつですね

ちなみに、PolarbarMailerでは表示されない文字だったので、
今までおかしいことに気づいていなかっただけなのかもしれません。
(今まで表示されてなかったのが、今回バケるので、異常に気づいた?とか)
jjsuwa
投稿日時: 04/07/08 03:43
Home away from home
登録日: 03/01/26
居住地: Kami-Youga, Setagaya Ward, Tokyo, Japan, Earth, Sol, MilkyWay
投稿: 197
Re: langを変更
| Mozillaが行っていることを推測すると, こんな感じだと思うです。
の、

| 1. 指定のページを読み込む。 このとき(ヘッダーにある)サーバーから送られた文字コードでアレする (Shift_JISとか JISコードとか EUC-JPとか)
ここってMozilla独自変換なんでしたっけね確か。

| 2. 内部に Unicodeとして蓄える
実際の内部表現が確認できればどこらへんで腐ってるのがはっきりしていいんですけど、できないんだよなあ。

| 3. 出力(表示)する。このとき, その OSがサポートしているエンコーディグ(?)で ・・・
普通に考えると、ここんところはUnicode→現在のcodepage設定による表現になると思うんだけど、どうなんだろう。
# 例えばUniMapCpToUcsCp()とか使って。
jjsuwa
投稿日時: 04/07/08 04:11
Home away from home
登録日: 03/01/26
居住地: Kami-Youga, Setagaya Ward, Tokyo, Japan, Earth, Sol, MilkyWay
投稿: 197
Re: langを変更
あー、なんか見えてきたような気が。

1. HTMLソースをcharsetとか見て/自動判別してUnicode内部表現に変換するところは多分齟齬を来してはいないと思う。
# MozillaのToUCSとOS/2 ULSのFromUCSが正確な鏡像になってるかどーかってのはさて置きw
# でもまー自動判別ロジックとかもあるからここはOS/2 ULSでは置換できないと思われ。

2. 現行のOS/2がUnicode nativeでない以上、Unicode内部表現は必ず何らかのOS/2 native表現に解決されなければならないのは自明と。
 そしてそのOS/2 native表現はcodepageによって異なると。
# ここんところはMr.MikeのたまうところのクソッタレなOS/2 ULSでやるわけですがw

3. で、そのOS/2 native表現されたものをOS/2 PMで正しく表示するには、それに相応しいフォントを選んできたり、あるいはSBCS/DBCS指定をウィンドウ制御に指定したりしなければならない、と。

で、
1.の段階でencoding情報は全てUnicodeに吸収されるとしても、lang情報はそれとは別にどっかに保管してないと2.または3.で齟齬を来すのは明白ではなかろうか。
# コード化けしている、という現象からすると2.の段階でOS/2 native表現をlatin-1辺りへ決め打ちになってるのかlangがDBCS圏の時のOS/2 native表現が変なのか、のどちらかかな。

# もしかしたら上記の過程でlang情報が本当に失われてるのか、使いづらい状況になってるのか?
jjsuwa
投稿日時: 04/07/08 05:11
Home away from home
登録日: 03/01/26
居住地: Kami-Youga, Setagaya Ward, Tokyo, Japan, Earth, Sol, MilkyWay
投稿: 197
Re: langを変更
いまクソッタレなOS/2 ULSを使って確認してみたけど、

nativeの0x81 0x7dは
Shift_JISで ± で、→Unicodeだと0x00b1
Latin-1→Unicodeだと0x0081 0x007d
# Latin-1をunsigned extendするとUnicode?

nativeの0x81 0x7eは
Shift_JISで × で、→Unicodeだと0x00d7
Latin-1→Unicodeだと0x0081 0x007e

なんか、どーもMozilla内部のOS/2寄りな部分で、0x0000〜0x00ffなUnicodeはOS/2 ULSで変換せずにそのままGUI系に流しているっぽいですな。
# 1.7bでも±や×は本来の幅より狭く表示されるし

Unicode時代のSBCS圏DBCS問題:
 SBCS圏な開発者は0x0000〜0x00ffなUnicodeはnative表現で必ず1byteになると思っているw

のかも、しれない…
# あ、… も狭く表示されるw
# OS/2 ULSではUnicode 0x2026なんだけどMozillaだと0x0000〜0x00ffな何かなんだろうなぁ

=====
/* ucstest.c */

#include <string.h>
#include <stdio.h>
#include <uconv.h>

/* */
int main(int argc,
char* argv[])
{
int result;
UconvObject uconvShiftJIS, uconvLatin1;
void* fromptr;
size_t fromlen;
UniChar to[16];
UniChar* toptr;
size_t tolen;
size_t nonidentical;
unsigned int i;

if(argc < 2)
{
(void)printf("\n"
"needs 1 string argument.\n");
return 0;
}

result = UniCreateUconvObject((UniChar*)L"IBM-943", /* Shift_JIS */
&uconvShiftJIS);
result = UniCreateUconvObject((UniChar*)L"IBM-819", /* Latin-1 */
&uconvLatin1);

(void)printf("\n"
"Shift_JIS to Unicode :\n");
fromptr = argv[1];
fromlen = strlen(argv[1]);
toptr = &to[0];
tolen = 16;
nonidentical = 0;
result = UniUconvToUcs(uconvShiftJIS,
&fromptr,
&fromlen,
&toptr,
&tolen,
&nonidentical);
if(result != ULS_SUCCESS)
(void)printf("UniUconvToUcs(ShiftJIS) failed, rc=0x%08x.\n",
result);
else
{
(void)printf("%u chars, ",
16 - tolen);
for(i = 0;
i < 16 - tolen;
i++)
(void)printf("0x%04x ",
to[i]);
(void)printf("\n");
}

(void)printf("\n"
"Latin-1 to Unicode :\n");
fromptr = argv[1];
fromlen = strlen(argv[1]);
toptr = &to[0];
tolen = 16;
nonidentical = 0;
result = UniUconvToUcs(uconvLatin1,
&fromptr,
&fromlen,
&toptr,
&tolen,
&nonidentical);
if(result != ULS_SUCCESS)
(void)printf("UniUconvToUcs(Latin-1) failed, rc=0x%08x.\n",
result);
else
{
(void)printf("%u chars, ",
16 - tolen);
for(i = 0;
i < 16 - tolen;
i++)
(void)printf("0x%04x ",
to[i]);
(void)printf("\n");
}

result = UniFreeUconvObject(uconvLatin1);
result = UniFreeUconvObject(uconvShiftJIS);

return 0;
}
=====
orca
投稿日時: 04/07/08 08:08
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: langを変更
achainさんは書きました:
てな感じでしょうか.

ありがとございます。
いろんな意味で正しく伝わるかどーか不安なトコだけど。

んで, なんだか説明がダメダメだったっぽいので, もういちどトライしてみるです。
# ここで伝わらないよーだと, さらに伝わらないっぽいので

言語コードを 'x' に(あるいは SBCS圏の何かに) すると, 文字化けは直ります。 ソレは, 蓄えられた Unicodeは同じでも, 出力方法が正常になるからだと思うです。
('x' は実験的言語コードのこと http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/dirlang.html#h-8.1 )

で, lang属性が ja とか ko だと, ブラウザー側で何かアレする必要があるのかもだけど, そーゆーしがらみは置いといて, ごく単純にその処理を考えてみると ・・・

表示するときには, (蓄えてある)Unicodeの文字列から一文字ずつ取り出して, そのコードとフォントから グリフ(文字のイメージ)を得て, ソレを描画する, のを繰り返す。
Unicodeを指定してグリフを得るって APIが, OS/2にあるのかどーかは知らないけど, そーでなくても Unicode → SJIS → グリフを得る, みたいにはなってると思うです。

「――」てゆーのを例にとると, Unicodeでは "\u0097\u0097" のはずで, 正しい出力手順は
1. 最初の一文字を SJISにし, 0x97 (あるいは 0x81 0x5c) とゆー内部コードを得る
2. ソレを元にグリフを得, 描画
3. 次の一文字を SJISにし, 0x97 (あるいは 0x81 0x5c) を得る
4. 同様に描画

ところが, そこで起こっていることは
1. 最初の一文字を SJISにし, 0x97とゆー内部コードを得る
2. グリフを得るつもりが, 内部コード SJISとしては成り立たないので, 何も無し
3. 次の一文字を SJISにし, 0x97を得る
4. 先の 1バイトと組み合わせ 0x97 0x97の内部コードでグリフを得て描画

この動きは, コマンドラインでも試すことができ, たぶんソレと同じではないかと思うです。
コマンドラインでの漢字(全角文字)は, たとえば 0x97を出力するとすぐには出力されず, その次の 1バイトを待つようになってて, 決して左半分だけが先に描画されたりはしないから (当然だけど)。
こんな感じ(↓) ・・・ キーを押すと続行します
rexxtry call charout ,x2c(97); ch = SysGetKey('noecho'); call charout ,x2c(97);

少なくとも SJISに関する部分は, 内部コードを得るために使う (1) (3) だけで, そこで得た内部コードは, 文字としては完結してるはずです。
グリフを得る(らしき)トコでは, SJISに関する部分が呼び出されないよーに, あるいはその処理が不可分なもので一体となっているのなら, その部分だけ英語モードで, ・・・ なんてことを伝えることができたら
って甘いかも。(^^;
orca
投稿日時: 04/07/08 08:13
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: langを変更

minさんは書きました:

んで, 本来なら
「±」→ 177 ("\u00b1") → 0x81 0x7D
横線 → (まだ調べきれてない)


横棒は、
「―」→ ("\u2015") → ?
0x815C 0x2015 #HORIZONTAL BAR


Unicodeで, &#8212; とか &#x97; とか, それに他にもあるかもなので分からなかったです。
で, &#x2015 は, こちらでは化けないれす。
orca
投稿日時: 04/07/08 08:38
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: langを変更
なんか、どーもMozilla内部のOS/2寄りな部分で、0x0000〜0x00ffなUnicodeはOS/2 ULSで変換せずにそのままGUI系に流しているっぽいですな。

ソレはソレでよいと思うです。
文字化けせずに, ここに現れてるイメージが表示されれば。 → http://jrgraphix.net/research/unicode_blocks.php?block=1

Unicode時代のSBCS圏DBCS問題:
 SBCS圏な開発者は0x0000〜0x00ffなUnicodeはnative表現で必ず1byteになると思っているw

のかも、しれない…

その範囲を 1バイトでアレするのなら, 英語モードか何かで そのイメージに変換して欲しいし, そうでないのなら, 横棒を 0x81 0x5cの内部表現に変換するよーにて描画してほしいトコれすね。
「SJISとしての先頭 1バイト」に変換されるのが問題って気がするです。
jjsuwa
投稿日時: 04/07/08 11:50
Home away from home
登録日: 03/01/26
居住地: Kami-Youga, Setagaya Ward, Tokyo, Japan, Earth, Sol, MilkyWay
投稿: 197
Re: langを変更
| 表示するときには, (蓄えてある)Unicodeの文字列から一文字ずつ取り出して, そのコードとフォントから グリフ(文字のイメージ)を得て, ソレを描画する, のを繰り返す。
| Unicodeを指定してグリフを得るって APIが, OS/2にあるのかどーかは知らないけど, そーでなくても Unicode → SJIS → グリフを得る, みたいにはなってると思うです。

OS/2はUnicode nativeではないんで必ずUnicode→native変換してglyph描画です。
ただ、そのnative表現をlang情報によって切り替えると。
# 同様にUnicode nativeな環境であってもglyph描画にはlang情報が必要になります(将来のUnicode規格でlang情報埋込みとか取り入れる )

| 「――」てゆーのを例にとると, Unicodeでは "\u0097\u0097" のはずで, 正しい出力手順は

1. 最初の一文字をnative表現(このページはlang=jaなんでSJIS)にし、0x81 0x5cを得る
2. 上記表現からlang=jaに相応しいフォント(font pref.による)でグリフを取得、また必要であればlangによってDBCS属性を決定し、描画
3. 次の一文字を以下略
4. 同様に(ry

「――」がlang=enに書かれてたらnative表現はSJISでなくLatin-1あたり、フォントもlang=en用のやつ、そしてもちろんSBCS属性。

やはりちょっとした(しかし決定的に重要)ところで手抜きか勘違いがどこかに入ってるんでしょうね >mozilla for OS/2
jjsuwa
投稿日時: 04/07/08 12:14
Home away from home
登録日: 03/01/26
居住地: Kami-Youga, Setagaya Ward, Tokyo, Japan, Earth, Sol, MilkyWay
投稿: 197
Re: langを変更
| ソレはソレでよいと思うです。
なんかあんましよくないと思うです。lang情報がnative表現に反映されてないし。
# lang=enをLatin-1とするならそれでOK、lang=jaをShift_JISとするならしっかり変換してくれないと

| その範囲を 1バイトでアレするのなら, 英語モードか何かで そのイメージに変換して欲しいし, そうでないのなら, 横棒を 0x81 0x5cの内部表現に変換するよーにて描画してほしいトコれすね。
そーゆーことですね。

| 「SJISとしての先頭 1バイト」に変換されるのが問題って気がするです。
つーか、なんでlang=jaでLatin-1なnative表現を吐くかねー、ってことですな。

以下、妄想w

・langなしor無効なのを指定するとnative表現までは正しくなっているっぽいが、fontは正常ではない
→ langなしor無効だとUnicode→native変換で「現行プロセスのcodepage」に向けて変換しているのかもしれない。font解決はやりようがないのでfor Westernのやつで無理やり書く(DBCSはfont associationされていれば、それで書かれる)。
↑文書lang設定と現行プロセスのcodepageってゆー元々無関係な代物を関係付けてるんで、もちろんおかしい。たまたまJapaneseNLVなOS/2では日本語文書見ることが多いだけ。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Powered by IBM OS/2 Warp, Apache, PHP, MySQL and XOOPS Cube