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/07/31 23:52
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
ある文字コードに対して, 本来のグリフじゃなく半角カタカナが現れてるトコだったら, それで回避できるかも。

でも, トランプマークも含め いくつかのマークが, その当時も表示できなかった気がするです。
てっきり, その動きで合ってると思ってたけど, ホントは違うのでは? もしかして他のプラットフォームでは, © と ® の区別がちゃんとできてたのカモ, とか思うです。 (OS/2だとどちらも"□"だったはずだけど)

「元に戻して」と発言するにしても, ここに手を加えた人は納得できないと思うです。 何らかの意図があって変更したはずだし。
どのような手順にすれば正しく表示されるかを, 開発者?に伝えることが必要かも。
てことで, 以前のロジックを参考に正しい手順を導き出す目的なら, 昔のソースを持ち出すのもよいのかも。とか思うです。
Average
投稿日時: 04/09/01 14:43
Home away from home
登録日: 03/01/27
居住地: 赤羽馬鹿祭りの町赤羽
投稿: 395
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
絵文字フォントのmozillaの挙動を見るとほぼ同種な挙動のような気がしてきました。
orca
投稿日時: 04/09/03 00:13
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
こんばんは。

Averageさんは書きました:
絵文字フォントのmozillaの挙動を見るとほぼ同種な挙動のような気がしてきました。

その可能性もなきにしもあらずって感じだけど, でも少し前のバージョンの Mozillaではそれなりに表示されてて, だから違う気もするです。

もうひとつは, Unicode → Shift_JIS(内部コード) → グリフをゲット ・・・ の手順で,
その内部コードが 0x0080〜0x00FFの範囲の "Latin-1 Supplement" のとき, 次に現われる内部コードとのダブル・バイト文字だ, みたいな誤った動作をしてしまうこと。 (ホントは単にグリフを得るだけなのに)

つか, この部分こそが そーゆー問題なのカモですね。
achain
投稿日時: 04/12/02 01:46
Webmaster
登録日: 03/01/26
居住地: とーきょー じゃぺーん
投稿: 2597
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
bugzilla-jpにorcaさんが書いておりますが,最新のMozilla trunk nightlyで一気に文字化け問題が解消した模様です♪当方もFTLib抜きで
◎変な日本語の文字化け
◎Preferences-Fontsでの日本語フォントファイル名化け
共にバッチリ直っていることを確認しました.いやぁ,非公式ビルドを提供してくれるだけでも有り難いのにbugまで修正してくれて…Peterさんスバラシすぎます.明日にでも彼にビールを贈らせて頂こうかと♪

ところでFirefoxはいまMozilla trunkと同期が取れていないらしいので,本件の完治は再度同期が取られるというFirefox 1.1(2005年春予定)まで待たないといけないかもしれません.
achain
投稿日時: 04/12/02 23:34
Webmaster
登録日: 03/01/26
居住地: とーきょー じゃぺーん
投稿: 2597
Re: 「UTF-8 encoded pages without "lang=" specification fails to use proper font for that national la
>最新のMozilla trunk nightlyで一気に文字化け問題が解消した模様

よくよく見てみたら,1.8a5でも直ってたです(汗)

# Internal Server Errorでビール贈れず.を当たろう…
orca
投稿日時: 04/12/03 07:19
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
Mozillaは動かしていないので直ってたの知らなかったれす。
んで, コレって直ったとゆーより, 化けだす前の状態に戻ったって気がするです。 他の文字(例えば トランプマークとか)も表示できるよーになったらよいんだけど ・・・

Unicodeで保持しているドキュメントを実際に表示するとき, OS/2は Unicode(の機能?)を一部しかサポートしていないので, いったん Shift_JISに変換(して出力)する訳だけど, そのとき, (たぶん)Shift_JISにないコードだからダメなのかなー, なんて。
orca
投稿日時: 05/03/05 23:28
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Unicode Function
現在は, そこそこまともに横線とかも出るけど, あいかわらずトランプマーク他, 記号っぽいのがダメれす。
そんな訳で少し調べてみたです。

http://lxr.mozilla.org/mozilla/search?string=UniUconvFromUcs
使われている場所がここだけなので, たぶんここなのでしょー。
こんな感じのプログラムを (emxで)作ってみると, トランプマークは変換できない文字として扱われてしまうです。
本来どーあるべきかとゆーと, ・・・ わかりません。(T-T)

んで, 途中は抜きにして, その後は, 例えばハートマークだとしたら (SBCSのコードページでの)0x03 に変換し(され), Averageさんの投稿での話のよーに, 絵文字を持つフォントファイルからソレのグリフが取り出され, 描画されるはず。です。

てことで, 動かしてみたプログラム↓
/* Unicode Functions *//*
*/

#define INCL_DOS
#include <os2.h>
#include <uconv.h>

static UconvObject UnicodeConverter = NULL;

void
UnicodeToNative(void)
{
    if (!UnicodeConverter)
      NS_StartupNativeCharsetUtils();

size_t       out_bytes_left;
size_t       uni_chars_left;
size_t       num_subs;
size_t       char_buf_size = 50;
char         char_buffer[50];
char         *pout_char_str;
UniChar      *pin_uni_str;
UniChar      uni_data[] = L"\xff83\xff8d\x2665\x2014\x6f22\x5b57";   // ← 変換したい文字列

        pout_char_str = char_buffer;
        pin_uni_str = uni_data;
        uni_chars_left = UniStrlen(pin_uni_str)+1;
        out_bytes_left = char_buf_size;

    int unirc = UniUconvFromUcs(UnicodeConverter,
                            &pin_uni_str, &uni_chars_left,
                            (void **)&pout_char_str, &out_bytes_left,
                            &num_subs);

    if (unirc != ULS_SUCCESS) return;
    printf("%s\n", char_buffer);
}

void
NS_StartupNativeCharsetUtils()
{
    ULONG ulLength;
    ULONG ulCodePage;
    DosQueryCp(sizeof(ULONG), &ulCodePage, &ulLength);

    UniChar codepage[20];
    int unirc = UniMapCpToUcsCp(ulCodePage, codepage, 20);
    if (unirc == ULS_SUCCESS) {
        unirc = UniCreateUconvObject(codepage, &UnicodeConverter);
        if (unirc == ULS_SUCCESS) {
            uconv_attribute_t attr;
            UniQueryUconvObject(UnicodeConverter, &attr, sizeof(uconv_attribute_t),
                                  NULL, NULL, NULL);
            attr.options = UCONV_OPTION_SUBSTITUTE_BOTH;
            attr.subchar_len=2;
            attr.subchar[0]= attr.subchar[1] = '_';
            attr.displaymask = DSPMASK_DISPLAY;
            attr.converttype |= CVTTYPE_CDRA;
            UniSetUconvObject(UnicodeConverter, &attr);
        }
    }
}

void
NS_ShutdownNativeCharsetUtils()
{
    UniFreeUconvObject(UnicodeConverter);
}

void
main(int argc, char *argv[], char *envp[])
{
     UnicodeToNative();   // NS_StartupNativeCharsetUtils();
     NS_ShutdownNativeCharsetUtils();
}


# ちなみにコードページを変更してると 0x03に変換されるけど漢字はダメになってしまう
orca
投稿日時: 05/03/11 00:28
Home away from home
登録日: 03/01/28
居住地:
投稿: 269
Re: Unicode Function
Unicodeから OS/2内部コードへの変換って, OS/2のAPI使ってると思ってたけど, もしかしたらコレかも http://lxr.mozilla.org/mozilla/source/intl/uconv/ucvja/
コレをどーやって検証したらよいのか分からないけど。
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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