Re: ver0.1.0 utf-8環境での不具合

投稿ツリー

  • なし Re: ver0.1.0 utf-8環境での不具合 (AXYZ-SAK, 2010/7/7 1:35)
  • なし Re: ver0.1.0 utf-8環境での不具合 (なーお, 2010/7/7 23:22)

  • このトピックの投稿一覧へ

    なし Re: ver0.1.0 utf-8環境での不具合

    msg# 1.1
    depth:
    1
    前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/7/5 11:51 | 最終変更
    なーお  長老   投稿数: 1832 オンライン

    AXYZ-SAKさん、こんにちは。

    mb_substr関数は、byte指定ではなくて文字数指定ですよね。 :roll:

    そのため、

    • 日本語:1文字の文字列から2文字を取り出す・・1文字取得
    • 英語 :3文字の文字列から2文字を取り出す・・2文字取得

    となるはずなんですが、、
    (ver0.09でUTF-8環境で、問題の報告はありませんでした)

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

    $str_enco = mb_internal_encoding();$str_temp1 = mb_substr(constant("_MD_W_SUN"),0,2,$str_enco);$str_temp2 = mb_substr(constant("_MD_W_SUN"),0,2);$wk_strlen = ($str_temp1 != $str_temp2) ? 3 : 2;

    とした上で、それぞれの切り出し部分は

    mb_substr(constant("_MD_W_SUN"),0,$wk_strlen)

    という感じで。(他に応用は効きませんが。。)
    トリッキーな方法ですが、もし検証いただければ助かります。

    投票数:0 平均点:0.00
    返信する

    この投稿に返信する

    題名
    ゲスト名
    投稿本文

      条件検索へ


    ログイン

    メインメニュー

    テーマ選択
    Cube