Category Archives: 文字コード

mbstringの設定メモ

良いページなのに忘れて一々検索しちゃうのでメモ。

PHPの文字化けを本気で解決する – ぎじゅっやさん.

まあ、最近はデフォルトの設定がこうなってきてますね。

いわゆる半角カナや種依存文字などをメールで送信する方法 – t_komuraの日記

いわゆる半角カナや種依存文字などをメールで送信する方法 – t_komuraの日記

メールの送信エンコーディングに UTF-8 を使用すれば、機種依存文字という問題を気にする必要はほとんどありませんが、まだ一般的には、ISO-2022-JP を使用してメールを送る方が多いと思います。ただ、PHP の mb_send_mail では、いわゆる半角カタカナや、機種依存文字を送信することはできません。これらの文字は ‘?’ に変換されます。

PHP 5.2.1 からは、レガシーエンコーディングの追加として、ISO-2022-JP-MS というエンコーディングが追加されました。ISO-2022-JP-MS を使用すれば、このエンコーディングでサポートされている文字を送信することができます。ISO-2022-JP-MS については、[PHP-dev 1345] PHP への CP932 系エンコーディングの追加パッチを参照してください。

ふーむ。ややこしいなメモ。

PHP: mb_convert_encoding

あけましておめでとうございます!

皆様、如何お過ごしでしたでしょうか。
私は食中毒で大ダウン中でした(^_^;)
2009年も頑張ってまいりましょう!

PHP: mb_convert_encoding – Manual
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);

eucjp-win、sjis-winをよく忘れるのでメモ。
CSVを作ったりする時に、sjis-win、よく使いますよネ。

mb_encode_mimeheaderの検証

mb_encode_mimeheaderの都市伝説を検証する – CPA-LABテクニカル
mb_encode_mimeheaderを詳しく検証し、正しいバッドノウハウ(^_^;) を解明されています。
素晴らしくわかりやすい記事ですね。参考になります!

文字コード変換(EUC-JP→UTF-8)にはまる

WEBプログラミング NOW!: PHPで、いわゆる機種依存文字の文字コード変換(EUC-JP→UTF-8)にはまる

UTF-8 -> CP51932 を SJIS-win 経由で変換する場合は、SJIS-win に変換した後、IBM拡張文字をNEC選定IBM拡張文字に置換してから EUC-JP に変換する必要があると思われますのでご注意ください。

なるほど。できるのかな。要チェック。

フォーム送信で文字化けの罠

フォーム送信で文字化けの罠 – ホームページ制作日誌

「encoding_translation」をOffにできるのなら間違いなく思ったとおりのデータを受け取る事ができるが、そうでない場合、送信データを自動変換されてしまうので注意が必要。

基本的には、内部エンコードに変換される事となるが、ここに罠が潜む。

「mb_internal_encoding」を利用して、内部エンコードを変換した場合、「encoding_translation」は、その文字コードには変換しない。php.iniで設定されている内部エンコードに変更する。おいおい。。

これは引っかかりそうな罠ですね。。気をつけます!

日本語文字列の「バイト数」取得

日本語文字列のバイト数取得にstrlenだけではダメな理由-PHP – CPA-LABテクニカル
日本語文字列のバイト数取得する方法が、strlenだけではダメなんだよ、という記事です。
参考になります。

「ああああああああああああ」という文字列をstrlenで取得すると 24と出てほしいのに、36と表示されてしまいます。 なぜでしょうか??

PHPで質問です。 「ああああああああああああ」という文字列をstrlenで取得すると 24と出てほしいのに、36と表示されてしまいます。 なぜでしょうか?? ※なぜか、mb_strl.. – 人力検索はてな

文字コードが UTF-8 だからじゃないでしょうか。

ということで、UTF-8は3byteの文字もあります。

UTF-8からShift_JISやEUC-JPへ変換できない依存文字をどうにかする。

㈱とかⅡ(←ローマ数字)とかの特殊な記号はUTF8からShift_JISやEUC-JPに直接変換できません。メールで送る場合、特に携帯が絡んでくると、Shift_JISやEUC-JPにどうしても変換したい場合がありますので、何とか上手く記号を橋渡し出来ないかと色々調べてみましたが、出来ないようです。
というわけで別のアプローチとして、特殊記号を普通の文字に『ひらいて』から変換しようというスクリプトたちがこちらです。

私は三番目の機種依存文字の変換を使用させていただいてます。