スレッド表示 | フラット表示〕 全トピック 920 件中 732 番目 次≫ ≪前

mb_convert_kana 文字化け

created: 2003-10-11 18:22 | modified: 2003-11-21 17:23 | reply: 4

[750] mb_convert_kana 文字化け

user: kony | created: 2003-10-11 18:22
はじめまして、みなさん。konyと申します
ちょっと、助けてほしいことがありまして、投稿させていただきました。今の環境はWindows2000sp4 Apache/1.3.28 (Win32) PHP/4.3.3 です。

私の環境では、なんか、mb_convert_kana()関数で、文字化けが発生します。
=====================
<?php $title = "test あああ アアア アアアア 漢字"

echo($title);
$title = mb_convert_kana($title);
echo($title);
?>
=====================
で返ってくる答えは
==========================
test あああ アアア アアアア 漢字 test ???????@アア?@?A?A?A?A?@???

↑↑↑↑↑↑↑↑↑↑↑↑↑↑
となってしまいます。それと、
mb_send_mail()でメールを送ると文字化けしてしまい、mail()だと、文字化けしません。
きっとこれは、Mb_****()関数系だと、文字化けするので、設定が悪いと思うのですが、php.iniの怪しい部分を適当にいじってみたのですが、もうお手上げです。誰か助けてください。
↓一応 php.ini の設定なんですが、
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes"

; Directory in which the loadable extensions (modules) reside.
extension_dir = "c:/php/extensions"

以上最後まで見ていただきありがとうございます。どうですか?わかるようでした、返信お願いしますね。
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll

[mbstring]
; language for internal character representation.
mbstring.language = Japanese

; internal/script encoding.
;mbstring.script_encodeing =Shift_JIS
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP

; http input encoding.
;20031012 chenge kony
mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = EUC-JP

; enable automatic encoding translation accoding to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
mbstring.encoding_translation = on

; automatic encoding detection order.
; auto means
mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
reply: 751 返信 編集 削除

[751] ソースの文字コードは?

user: ゆうじ | created: 2003-10-11 19:06
WinXP + Apache/1.3.28 (Win32) PHP/4.3.3で、
同じ設定にしたら、
私の方でも同じように化けました。

Windowsということで、
ソースをSJISで書いていることにふと気づき、
EUCに直したら正常動作いたしました。

> mbstring.internal_encoding = EUC-JP
ここがEUCならば、ソースもEUCにしないとなりませんね。
こういうことではありません?

> mb_send_mail()でメールを送ると文字化けしてしまい
これはどんな文字化けになってますか?


追記:
> mbstring.encoding_translation = on
これがOnだと以下の2つも設定が必要かもしれません。
・php.iniの94行目あたり
output_buffering = On
output_handler = mb_output_handler

訂正:
私の環境PHP4.3.2の間違いでした。すみません。

> ;mbstring.script_encodeing =Shift_JIS

4.3.2 の php.ini には、
このオプションが見当たらない・・・、
というかなかったと思いますが、
今コメントアウトされてるので有効にしてみては。
Parent: 750  reply: 754 返信 編集 削除

[754] Re mb_convert_kanaの文字化けの件

user: kony | created: 2003-10-12 01:22
返信ありがとうございました。
一応設定いろいろ、いじってみましたが、今度はmb_convert_kana()が無効な状態になってしました。
半角、全角が変換されなくなりました。

もう少し、勉強が必要なようですね、

それと、もしよろしければ、ソースをEUCにする方法(書き方でもかまわないです。)を教えていただけないでしょうか。使っているエディタはDREAMWEAVERです。
Parent: 751  reply: 755 返信 編集 削除

[755] 4.3.3でも同じでした。

user: ゆうじ | created: 2003-10-12 01:45
私のほうでも、4.3.3 にバージョン上げて再度確かめたところ、

提示されてた php.iniの設定の通りで、
(追記した分の設定にかかわらず)
ソースを EUC-JP にしただけで、
文字化けが改善されました。

手元のDREAMWEAVER4で確かめたところ、
メニューの、
修正 > ページプロパティー
で エンコーディング を設定するところがありました。
Parent: 754  reply: 1062 返信 編集 削除

[1062] sjis

user: sjis | created: 2003-11-21 17:23
mb_convert_kana($hoge,'a','Sjis')
でどうでしょう!
Parent: 755  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 732 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑