人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで、ギリシャ文字の文字数カウントがうまくいきません。

mb_strlen( $moji, 'UTF-8' );

で、「5」になってしまいます。
コードはUTF8で書いています。

mb_strlen( mb_convert_encoding($moji, 'UTF-8', 'auto'), 'UTF-8' );

にしてみましたが、「5」になってしまいます。
一応「あい」とかだと「2」ときちんと表示されます。
「きごう」で変換される「ギリシャ文字」だけが、違う数字になってしまいます・・・。

ギリシャ文字なども含めて、入力された文字列の「文字数」をカウントして、
文字と共に利用したいと思っています。
(mixiのように、名前に使えるように)

なにか参考になる情報やアドバイス頂けると助かります。

●質問者: onigirin
●カテゴリ:ウェブ制作
✍キーワード:mixi PHP UTF-8 あい けが
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● bayan
●60ポイント

$moji の中身はフォームから送信されたデータですかね。

文字コードはUTF-8ではないのでしょう。

mb_convert_encoding は文字コードの判定に失敗しているようです。

スクリプトの先頭で次のように書いたらどうでしょうか。

mb_language("Japanese"); 
◎質問者からの返答

どうもありがとうございます。

$mojiはフォームからのデータです。

mb_languageを書きましたが、直りませんでした。

確かに文字コードがおかしいようですが、コンバートできないようです・・・。

ギリシャ文字だけがおかしくなります。

echo mb_detect_encoding($moji); //ASCII

$test = mb_convert_encoding($moji, 'UTF-8', 'auto'); // 'auto'を'ASCII'にしても同じ結果

echo mb_strlen( $test, 'UTF-8' ); //5

echo mb_detect_encoding($test); //ASCII

echo $test; //φ

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ