2009/12/25

PHP の mb_convert_encoding で、機種依存文字の文字化け

Webからデータをまとめて取得しようと、csvを動的に作成してみた
今回、PHPで使用している UTF-8 からそのまま csv を生成した所、Excelで文字化け(テキストエディタで一旦開いて、SJIS保存すりゃいいんだけど)
ということで、出力時に SJISへ変換しようと

mb_convert_encoding($s, 'SJIS', 'UTF-8');

みたいにやって解決。と思っていた矢先

ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ

といった機種依存文字が ?(クエスチョン)になってる~
(住所をcsv吐き出したので「○○マンションⅡ」とかいうのがあって発見)

mb_convert_encoding($s, 'SJIS-win', 'UTF-8');

とかいうのがあるらしく、Ⅱなんかも問題なく変換されました

2009/12/24

mbook m2

大変興味ある mbook

m2 が出るとかで、益々興味が出てしまって
頭の中で「必要ですか?」「あったら便利は、無くてもいいもの」が回っています

ところで 工人舎OEMで ONKYOから出た BX407A4 てのが、筐体は m2 みたいなんですね
このモデルの CPUとメモリとOSを変更したのが m2 なのか???

まぁ、m2は、増設不可なメモリが 1GBとちょっとガッカリな所です
ポインティングデバイスなんか、マウスやキーボード操作のアプリで対応するから メモリ 2GBは欲しい

2009/12/18

スマートフォンに足りない FeliCa について

筆者がスマートフォンに切り替えられない理由の一つに FeliCa 対応がある
携帯キャリアのメールアカウントが利用できないとかの理由も多く聞くが、そっちはアプリケーション対応でなんとかなる話

「サイフケータイ」をはじめとして FeliCaについては、利用シーンが増える事はあっても減る事はなかなかないワケですが、海外製端末に、マイナーな日本的仕様を押しつけるわけにもいかず

「FeliCa内蔵 SDメモリ」

調べてみたら、昔 vodafone が試みてるみたいだけど...
http://plusd.itmedia.co.jp/mobile/articles/0406/11/news058.html

携帯板 MyYahoo アプリ終了

携帯板 MyYahoo アプリ、ちょっと前からお知らせが表示されていたけど、2009年12月15日で終了
メールアプリ等もだいぶ前に終了したし、Webでやってちょうだいって事でしょうな

まぁ、ソフトバンク携帯は S!アプリ(?)に対応してない機種もそこそこあって、統一感がないのもあり、アプリ対応の揃ってる商売敵へアプリケーションを供給したくないというのもあるのかもしれません

残った、Yahoo地図アプリも Mobile Google Mapと比べるとショボイもんで、GPS情報をブラウザに戻って取得、その後ブラウザからアプリを呼び出すという「アレで GPS 対応なんですか?」な仕様
こちらも、改善されるのが先か、サービス終了が先かって思ってしまいます

一方、Microsoft の Windows Live アプリも 2009年11月26日でダウンロード終了、2010年3月31日サービス終了だとか

まぁ、最初からチカラが入ってなかったんでしょうな

2009/12/17

検索エンジン系、日本語入力ソフト

検索エンジン系の日本語入力ソフトが、次々と発表

Google 日本語入力(32bit, 64bit)
http://www.google.com/intl/ja/ime/

BaiduType (現時点で、Win XPのみ) - 百度(バイドゥ)
http://type.baidu.jp/

どちらも、検索エンジンの持つキーワードを連動させたかな漢字変換

長年 ATOKを使っている筆者ですが、何年も前に iAtok とかいう名称で、辞書のネットワーク同期なんかができる機能(ATOK Sync)を積んだときに、ネット上のキーワードと連携取れば、芸能人の漢字がなんだったかなんて悩まなくて済むじゃん(ニュース記事や、TVドラマの中で登場したセリフや芸能人の名前なんかですよ)

まぁ、ネット同期が取れるんだから、すぐに搭載するだろう
なんて思ってたら、全然進化しないし、ジャストシステム的にも、インターネットディスクで課金したいだけみたいな雰囲気

変換効率ってのも分かるけど、ATOK8(古すぎ)でやった、FDに収まらない巨大な辞書を積んだチカラ業も時には必要ですよって思ってしまいます
今更、どっかの検索サービスと組むとしたら Yahoo Japan くらいしか残ってないんだけど「IMEくらいなら自社でやりますよ」なんて断られたりして...
Googleなんてヘタしたら、サジェストを拡張して自社サービス上(Gmailなんか)に、日本語入力作りかねないですからね

こんな状態で、ATOK に要望する機能
・ローカルの辞書は最小限にして、辞書サーバでリアルタイム変換
・個別辞書等は、DropBox や InternetDisk みたいな単純な同期サービス
こんなのを勝手に期待

まぁ、辞書サーバについては、モロ個人情報の吸い上げにも繋がるのでなんとも言えませんが、個別辞書の同期なんかは、ソフトウェアの不正コピーの防止にも使えるんじゃないでしょうかね

2009/12/10

Outlook のリッチテキストで添付ファイル

Outlook のリッチテキストで添付ファイル を送ると、相手に添付が届かない(開かない・添付が存在しない)のまとめ

Outlook (Expressではない)のリッチテキストで添付ファイルを送ると、
テキストパートと
Content-Type: application/ms-tnef;
filename="winmail.dat"
みたいなパートで送信される

受信側のメーラーが
・Outlook の場合、正常に受信
・OutlookExpress の場合、添付(winmail.dat)そのものが表示されない場合がある
・その他の場合 winmail.dat という添付の付いたメールを受信

winmail.dat の中身を見る方法
Winmail Opener を利用する
・Gmail へ転送する
Gmailへ転送するについては、偶然発見
Hotmail へも転送してみたが NG でした

2009/12/08

Outlook 2007 で送信した添付ファイルが消える

Outlook 2007 で、送信時に添付したはずのファイルが、相手に届いていない症状

リッチテキスト形式で、ファイルを添付するとそういう症状になるらしい
新規をリッチテキストに設定していたり、返信時に同じ形式で返信するように
設定している場合は気をつけましょう

【追記】
後日、問題が起きるようにメールを送ってもらって確認
Content-Type: application/ms-tnef の winmail.dat という添付になってました

調べたら、症状と言うより MS-Outlook の仕様らしい
Winmail Opener というアプリケーションで添付を
さらに分離して開く事ができるとか

ここに漂流した方 → まとめはこちら

2009/12/07

PHP で Bmp → Jpg(Jpeg)変換

imagecreatefromjpg に対して imagecreatefromwbmp という関数があるので、利用してみるがNG
※wbmp てのが Windows Bitmap の意味じゃないらしい

ココ↓に目的の ImageCreateFromBMP があるので、ソレを利用して
http://jp.php.net/manual/ja/function.imagecreate.php#53879

$img_src = ImageCreateFromBMP($file_bmp);
  if($img_src !== FALSE){
   imagejpeg($img_src, $file_jpg);
   imagedestroy($img_src);
  }

めでたしめでたし

2009/12/02

PHPExcel の PDF出力で日本語文字化け2 携帯ビューア

PHPExcel の PDF出力で日本語文字化け の続き
文字化けは解決したけど「携帯電話のPDF Viewer (Acrobat Reader LE)で文字が表示できない」の解決編

PHPExcel は TCPDF を使っているみたい(FPDF を使っているのだと思い込んで、遠回りした)


で、文字が表示されない理由ですが arialunicid0 系フォントを指定すると
「OS標準のフォントを利用」という事になるらしい
OS標準のフォントてのを、携帯PDFビューアが認識できないのだろう(と解釈)

非標準のフォントだと、PCの場合ネットからフォントをダウンロードするけど、携帯には、おそらく無理、かといって、フォントを埋め込んだらPDFが肥大化して、都合が悪い

次に、PDFの日本語標準フォントは何かと調べると「小塚明朝」「小塚ゴシック」の二つ
さすがにコレは、携帯でも入ってんじゃね~のと思いつつ
PHPExcel の PHPExcel/Shared/PDF/fonts を覗いてみるが、それっぽいファイルがない

ということで TCPDF のフォントが欲しいついでに、最新へ入れ換えてみる事に


PHPExcel/Shared/ の PDF ってのが TCPDF そのもの

TCPDFの公式サイトから

tcpdf_4_8_017.zip ←この文章時点

をダウンロード → 解凍
上記の PHPExcel/Shared/PDF と置き換える(並べると中身が同じなのが分かる)


次に、昨日いじった PHPExcel/Writer の PDF.php の 133行目あたりへ移動

// Set the appropriate font
//$pdf->SetFont('freesans');
//$pdf->SetFont('arialunicid0-chinese-simplified');
//$pdf->SetFont('arialunicid0-chinese-traditional');
//$pdf->SetFont('arialunicid0-korean');
//$pdf->SetFont('arialunicid0-japanese');
$pdf->SetFont('kozgopromedium'); // ←フォント指定を 小塚ゴシック にする
$pdf->writeHTML($html);


以上のように、フォントを小塚ゴシックにすることで、携帯ビューアーでも見られるようになりました

2009/12/01

PHPExcel の PDF出力で日本語文字化け

PHPExcel の PDF出力で日本語文字化け
(PHPExcel 1.7.1 + PEAR の話だけど、他も同じだと思う)

PHPExcel/Writer/PDF.php の 133行目辺り
// Set the appropriate font
$pdf->SetFont('freesans');
//$pdf->SetFont('arialunicid0-chinese-simplified');
//$pdf->SetFont('arialunicid0-chinese-traditional');
//$pdf->SetFont('arialunicid0-korean');
//$pdf->SetFont('arialunicid0-japanese');
$pdf->writeHTML($html);
のコメントアウトを変更↓
// Set the appropriate font
//$pdf->SetFont('freesans');
//$pdf->SetFont('arialunicid0-chinese-simplified');
//$pdf->SetFont('arialunicid0-chinese-traditional');
//$pdf->SetFont('arialunicid0-korean');
$pdf->SetFont('arialunicid0-japanese');
$pdf->writeHTML($html);


まぁ、それはそれとして、

PHPExcel で作成した pdf、PCで問題なく表示されるんだけど、携帯ビューアーで表示したら白紙で表示された
なんなんだろう・・・ → 解決編