返信する: d3diaryサポート板


オプション

参照

Re: ver0.1.0 utf-8環境での不具合
投稿者: AXYZ-SAK 投稿日時: 2010/7/7 9:35
引用:
mb_substr関数は、byte指定ではなくて文字数指定ですよね。

おぅ……確かに。
すっとぼけてました _| ̄|○

引用:
 調べるとphpのロケール関連で環境依存になりそうですね。
 手元にUTF-8などの3バイト文字ロケール環境が無いので検証できないのですが、
 例えば、以下のような感じでどうでしょうか。
(mb_substrがfalseを返すようですと元も子も無いですが。。)

検証してみたところ、みごとにコケました。
で、mb_internal_encodingの返り値を見てみたら……ISO-8859-1。
どうやら、当該サーバのphp.iniで、mbstring.internal_encodingがpassに
指定されているようで。

まぁ、広汎かつ多岐にわたって使用される事を前提にしたサーバだと
あってもおかしくはない設定ではあります。
で、その辺を鑑みた場合……

引用:
$str_enco = mb_internal_encoding();

これを、$str_enco = _CHARSET; にしちゃった方が現実的かな、とw
ちなみにこれも、当該症状の発生している環境でテストしましたが
正常動作いたしました。