function readOnly(count){ }
Don't have an account?
Search for an answer or ask a question of the zone or Customer Support.
You need to sign in to do that
Sign in to start searching questions
Signup for a Developer Edition
Sign in to start a discussion
皆様お世話になっております。
表記の通り、文字列のバイト数を求める処理を作成しております。
しかし、ApexではJavaのようにgetBytes()関数が使えないようで、
どのような方法で取得しようか困っております。
解決方法をご存知の方、どうかお助けください。
宜しくおねがい致します。
ご返信ありがとうございます。意図通りに改行できる方法が早く実装される事を祈りつつ、解決とさせて頂きます。
ご返信ありがとうございます。
用途としては、visualforceでpdf出力をしようとしています。改行をさせたい箇所でpdfの改行コード(\r) を入れたとしても、
次の行の長さによっては改行されずに半角スペース(?)が挿入されるだけの場合があります。
この状態を避ける為に1行の長さを一定にする為に必ず改行される長さになるまで
行の後ろを全角スペースで埋めるという方法を取りました。
しかし、2バイト文字と1バイト文字で文字の大きさが違う為に1バイト文字が多い場合にはスペース埋めをしても「まだこの行には次の行の文字が入るよ」と判定されてしまい、改行されないケースが発生しました。
よってバイトで判断が出来れば一定の文字スペースを埋めてくれると判断しました。※現状ですが正確なバイト数を求める必要が無いため、 a~zとよく使う記号類は1、その他は2と換算してだいたいの大きさを求める事で 問題の発生は(ほぼ)防げています。
より良いソリューションがございましたらご提示ください。宜しくお願い致します。
ご返信ありがとうございます。
意図通りに改行できる方法が早く実装される事を祈りつつ、
解決とさせて頂きます。
All Answers
ご返信ありがとうございます。
用途としては、visualforceでpdf出力をしようとしています。
改行をさせたい箇所でpdfの改行コード(\r) を入れたとしても、
次の行の長さによっては改行されずに半角スペース(?)が挿入されるだけの場合があります。
この状態を避ける為に1行の長さを一定にする為に必ず改行される長さになるまで
行の後ろを全角スペースで埋めるという方法を取りました。
しかし、2バイト文字と1バイト文字で文字の大きさが違う為に1バイト文字が多い場合には
スペース埋めをしても「まだこの行には次の行の文字が入るよ」と判定されてしまい、
改行されないケースが発生しました。
よってバイトで判断が出来れば一定の文字スペースを埋めてくれると判断しました。
※現状ですが正確なバイト数を求める必要が無いため、
a~zとよく使う記号類は1、その他は2と換算してだいたいの大きさを求める事で
問題の発生は(ほぼ)防げています。
より良いソリューションがございましたらご提示ください。
宜しくお願い致します。
ご返信ありがとうございます。
意図通りに改行できる方法が早く実装される事を祈りつつ、
解決とさせて頂きます。
全角文字は2バイトから6バイトまで存在することになり、
少々やっかいだと思ったのですが
主旨はバイト数ではなく、半角・全角の区別だったということですね。
unicodeでは、!から~ がACCII文字の範囲、。から゚が半角カナ文字の範囲となります。
なので、正規表現で表すと[!-~。-゚]が半角、[^!-~^。-゚]が全角です。
ご参考になれば。