charindex_to_byteindex( s1, n1 ) 関数(Ver8.22対応版) 目次− 関数− charindex_to_byteindex( s1, n1 ) 関数 文字位置からバイト位置の変換をして、変換された位置を返します。(V8.00以降)
この数え方の違いを変換して、strlen等の数え方と一致させるためにこの関数があります。 文字の先頭を 0 として、いくつ目かで計算します。 以下の例で、"□"がUnicodeの全角文字だとしたら、4を返します。 "□"がUnicodeの半角文字だとしたら、5を返します。 #a = charindex_to_byteindex( "□abcde", 2 ); 以下の例で、文字列変数中にUnicode文字が含まれるかどうかを調べることに使うこともできます。 $target = "□abcde";HmJre.dll V3.13 以降では、dll内のdllfuncで呼び出せる関数としてSetUnicodeIndexAutoConvertという関数が追加されました。 これを使うと、byteindex_to_charindex, charindex_to_byteindexを使わずに自動的に変換することもできます。 詳細はHmJre.dllのヘルプを参照してください。 参照:byteindex_to_charindex |