文字列操作についての追加質問です。外字処理
2025-10-31 15:31
CELFの画面で入力した内容をレガシーシステムに連携するのですが、送り先がS-JISのDBとなっています。
UTF-8の文字が入力されているかチェックする方法はありますか?60Bytes以上の文字列を送るとレガシーシステム側でエラーとなってしまいます。
UTIL.CHARCELFの画面で入力した内容をレガシーシステムに連携するのですが、送り先がS-JISのDBとなっています。
UTF-8の文字が入力されているかチェックする方法はありますか?60Bytes以上の文字列を送るとレガシーシステム側でエラーとなってしまいます。
UTIL.ISCHARTYPEでは環境依存文字も全角として判定されてしまいました。
回答を投稿するにはログインが必要です。
CoPilotに質問して、LENとLENBで当該セルの文字数とBytes数を計算して等しければS-JISとみなすこととしました。
入力には半角の英数字も含まれるので、JIS関数を使って全て全角にしてから比較しています。
等しければJIS文字、違えば環境依存文字が含まれているかも?としています。
入力には半角の英数字も含まれるので、JIS関数を使って全て全角にしてから比較しています。
等しければJIS文字、違えば環境依存文字が含まれているかも?としています。
こんにちは。
𠮷(つちよし)はSJISのDBで?になってしまいました。
UTF-8の文字~~について
CELFは入力文字列に対して文字コードうんぬんを判別することはできないようです。
60Bytes以上~~について
LEFTB関数:文字列の先頭 (左端) から指定された文字数の文字を返します。
この関数で60Bytes取って、
[文字列]=[LEFTBで60Bytes取った文字列] ならば60Bytes以内である
と判断できないでしょうか。
𠮷(つちよし)だけ入れられると60Bytes以内なので通っちゃいます
ーーーなお、CELFチャットボットに聞いた回答はこのようになりました。
文字コードについては、CELFはUTF-8の文字コードを使用しており、他の文字コードで入力された場合は文字化けが発生する可能性があります。特定の文字コードで表現できない文字は「?」に変換されて出力されます。エクスポートされる情報には、タグについての情報は出力されません。CELFで使用される文字コードはUTF-8であり、他の文字コードで入力された場合は文字化けが発生する可能性があるため注意が必要です。
ーーー
𠮷(つちよし)はSJISのDBで?になってしまいました。
UTF-8の文字~~について
CELFは入力文字列に対して文字コードうんぬんを判別することはできないようです。
60Bytes以上~~について
LEFTB関数:文字列の先頭 (左端) から指定された文字数の文字を返します。
この関数で60Bytes取って、
[文字列]=[LEFTBで60Bytes取った文字列] ならば60Bytes以内である
と判断できないでしょうか。
𠮷(つちよし)だけ入れられると60Bytes以内なので通っちゃいます
ーーーなお、CELFチャットボットに聞いた回答はこのようになりました。
文字コードについては、CELFはUTF-8の文字コードを使用しており、他の文字コードで入力された場合は文字化けが発生する可能性があります。特定の文字コードで表現できない文字は「?」に変換されて出力されます。エクスポートされる情報には、タグについての情報は出力されません。CELFで使用される文字コードはUTF-8であり、他の文字コードで入力された場合は文字化けが発生する可能性があるため注意が必要です。
ーーー