Qtopia Shell Bridge Dialog その6

taketyon2004-07-08


qshdlg /bin/sh UTF8ダメ文字表

                                                    • -

 えお
 かきくけこ
 がぎぐげご
 さしすせそ
 ざじずぜぞ
 たちつてと
 っ
 だぢづでど
 なにぬねの
 はひふへほ
 ばびぶべぼ
 ぱぴぷぺぽ
 まみ めも

                                                    • -

 あ〜う、ぇ、を、む、や〜ら〜わ、ん

はOK。カタカナと漢字に関しては、さすがに全部試したワケじゃありませんが、今んトコ大丈夫そう。

 ・・・ちょっと、泣き入って良いですか?(^^;)。

Qtopia Shell Bridge Dialog その7

 上の表だけだと、何々で、も少し(^^;)。
 とりあえず、以下のようなスクリプトで試してみます。


# QDame.sh
#!/bin/sh

export QSHDLG_APP=Qdame
INPUT=/var/spool/qshdlg/input_${QSHDLG_APP}
OUTPUT=/var/spool/qshdlg/output_${QSHDLG_APP}
CONTROL=/var/spool/qshdlg/control_${QSHDLG_APP}

MSG_FILE="test.lang"

qshdlg -t "QDame" -c utf8 custom &

while [ ! -p ${CONTROL} ]
do
:
done

# PATTERN 1 (CONTROL経由)
echo 'description(QString)' "AAA" > $CONTROL # P1-1
#echo 'description(QString)' "あああ" > $CONTROL # P1-2 <-OUT
#echo 'description(QString)' "ののの" > $CONTROL # P1-3 <-OUT

# PATTERN 2 (直接OUTPUTへ)
echo "AAA" > $OUTPUT # P2-1
#echo "あああ" > $OUTPUT # P2-2 <-OUT
#echo "ののの" > $OUTPUT # P2-3 <-OUT

# PATTERN 3 (別ファイルから CONTROL経由)
echo 'description(QString)' "`grep "ABC" $MSG_FILE | sed -e 's/^.*\=//'`" > $CONTROL #P3-1
echo 'description(QString)' "`grep "ok" $MSG_FILE | sed -e 's/^.*\=//'`" > $CONTROL #P3-2
#echo 'description(QString)' "`grep "ng" $MSG_FILE | sed -e 's/^.*\=//'`" > $CONTROL #P3-3 <-OUT

# PATTERN 4 (別ファイルから 直接OUTPUTへ)
echo "`grep "ABC" $MSG_FILE | sed -e 's/^.*\=//'`" > $OUTPUT # P4-1
echo "`grep "ok" $MSG_FILE | sed -e 's/^.*\=//'`" > $OUTPUT # P4-2
#echo "`grep "ng" $MSG_FILE | sed -e 's/^.*\=//'`" > $OUTPUT # P4-2 <-OUT


echo 'showMessage()' > $CONTROL
echo 'show()' > $CONTROL


# test.lang
ABC=AAA
ok=あああ
ng=ののの

実行結果

 ダメ文字部分は、コメントアウトしてます。テストする場合は、行頭の # を削って下さい。


 以上のように、直接スクリプトに日本語文字列を打ち込んだ場合と、別ファイルからリダイレクトしてやった場合で、挙動が変わります。
 不思議なのは、P1-2とP2-2が通らないこと。同P1-3,2-3は、P3、P4でも通らない文字列なので、表示出来ないのも無理は無いのですが。何故か、外部から流し込んでやった場合には通っちゃうてのが謎です。同様に、日本語文字列以外に、半角スペースもP3,P4のパターンで流し込めば、qshdlg上でも表示出来たりします。うーむ。

 なお、これらの問題はあくまでもコーデックに UTF8を指定した場合だけです。コーデックにeucJPを指定する場合は、どの文字もちゃんと表示されます。