Hatena::ブログ(Diary)

TAKETYONの作業記録 at りなざうテクノウ


 | 

2004-07-08

taketyon2004-07-08

[][][]Qtopia Shell Bridge Dialog その6

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を指定する場合は、どの文字もちゃんと表示されます。

 | 

Linux Zaurus Technical Know-howにもどる