[PHP-dev 1234] Re: ISO-2022-JPでmb_strcutを使ってみる

MORIYAMA Masayuki msyk @ mtg.biglobe.ne.jp
2006年 3月 29日 (水) 00:27:50 JST


森山です。

Seiji Masugata wrote:
>>PHP のソースコードを見ていないので確かなことは言えませんけれども、
>>mb_strcut で ISO-2022-JP を適切に処理出来ていないのではないでしょうか。
> 
> 
> ざっと確認してみたところ、そんな事は無いようでした。
> こちらで確認した以下のスクリプトは正しく動いているように思えます。
> 
> 問題にしているスクリプトでは「$i += 40」と固定の数値を加算しているのが
> 良くないのかなぁ。。。と思います。
> 
> 不備がありましたら、指摘して頂けると幸いです。

詳しい説明は省略させてもらいますが、とりあえず次のようにして試してみてく
ださい。

<?php
// EUC-JPで記載

define( "INTERNAL_ENCODING", "EUC-JP" );
define( "CONVERT_ENCODING", "ISO-2022-JP" );
define( "SPLIT_LEN", 43 );

$String  = "あいうえおかきくけこさしすせそたちつてとなにぬねの";
$String .= "アイウエオかキクケコサシスセソタチツテトナニヌネノ";

$Rows = array( );

$String  = mb_convert_encoding( $String, CONVERT_ENCODING,
INTERNAL_ENCODING );

for( $i = 0; $i < strlen( $String ); $i += $Size )
{
 $Buffer = mb_strcut( $String, $i, SPLIT_LEN, CONVERT_ENCODING );
 $Rows[] = $Buffer;
 $Size   = strlen( $Buffer );
}

print_r( $Rows );

?>


PHP-dev メーリングリストの案内