HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0520
MZKhsp3dishにおける文字描画サイズの事前確認2解決


MZK

リンク

2019/5/20(Mon) 08:40:58|NO.87413

hsp3dishでメッセージウィンドウを描画してその内に文字列を入力したいのですが、
ウィンドウサイズに合わせて適宜改行を入れたいです。
文字数を確認しながら切り分けて行くのが良いと思うのですが、
半角全角を区別しながら文字数で切り分けたりする方法はありますでしょうか?
androidで実行するためコードはUtf8、文字列は英数に仮名カナ漢字が混ざっている状態です。
あらかじめ文章自体に区切り文字を入れておくのは大変なので文字数で判断したいです。



この記事に返信する


f(準備中)

リンク

2019/5/30(Thu) 09:43:42|NO.87512

Androidはメーカーや機種によって使っているフォントが違うので、機種によって文字の表示幅が異なる可能性がある。
HSPが対応しているシフトJISとは違い、1文字最大4Bytesの可能性があるし複数Bytesの文字だからといって全角幅があるとは限らない。
(日本語だけなら気にしなくて良い…と思う?)

それを踏まえた上で、UTF-8の1文字の文字コード長の判定は

0x80 と and したら 0x00 だった : 1Byte文字だ。
0xc0 と and したら 0x80 だった : 複数Bytes文字の先頭以外だ。
0xe0 と and したら 0xc0 だった : 2Bytes文字の先頭だ。
0xf0 と and しらた 0xe0 だった : 3Bytes文字の先頭だ。
0xf8 と and したら 0xf0 だった : 4Bytes文字の先頭だ。

で出来る。



MZK

リンク

2019/5/31(Fri) 08:30:29|NO.87518

一文字の文字サイズについては、しまくろねこさんのmod_picmesを使わせて頂いて調整することにしました。
日本語と英数だけなので複数バイト=全角と考えて教えて頂いた方法で数えてみます。
解決とさせていただきます。
ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.