タグ

文字コードに関するpitworksのブックマーク (23)

  • PHPのmb_send_mail()関数で送信したメールが文字化けする際の対処法 | PHP | 阿部辰也のブログ――人生はひまつぶし。

    PHPというのは非常に便利なスクリプト言語で、perlなんかと比べても非常にコーディングか楽チンです。 例えば、sendmailを利用してサーバーからメールを送信する、なんて処理も、perlだったら大体以下のような処理するコードを順番に書いてやる必要があります。 メールヘッダを文字列として定義する メール文を文字列して定義する メールヘッダとメール文の文字コードをJISに変換する sendmailのパイプを開く sendmailに文字コード変換したメールヘッダとメール文を渡す でも、PHPならこれらの処理をmb_send_mailという関数ひとつでやっちゃえるわけです。 (勿論、perlでも何らかのライブラリなりモジュールを使えば関数一つでやっちゃえますが) 具体的には、以下のような感じですね。 // 件名 $subject = '主人じゃ…満足できなくて!!'; // 文 $ma

  • UTF-8によるscreen文字化け

    家内ネットワークのファイル/IMAPサーバとして使いはじめたDebian GNU/Linux 4.0の日語環境はデフォルトがUTF-8みたいです。 xxx@julie:~$ echo $LANG ja_JP.UTF-8 ついにうちにもUTF-8の環境が出来てしまったみたいです。 で、EUC-JPのVine Linux 4.1からtelnetでDebian GNU/Linux 4.0にアクセスした際に文字化けする現象が発生していました。 (後述しますが、私の設定の問題です。) 次のような文字化けの現象が発生していました。 ・KDEのKonsole(以下Konsole)の「設定」ー「エンコーディング」をutf8にしても文字化けが解消されない ・GNU Screen(以下screen)を使用していない状態でKDEのKonsoleの「設定」ー「エンコーディング」をutf8に変更すると文字化けしな

    pitworks
    pitworks 2010/11/15
    Screenで文字化けする時はscreen -U でUTF8モードで起動すると幸せに
  • 文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2010年9月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPカンファレンス2010にて「文字コードに起因する脆弱性とその対策」というタイトルで喋らせていただきました。プレゼンテーション資料をPDF形式とslideshare.netで公開しています。 文字コードのセキュリティというと、ややこしいイメージが強くて、スピーカーの前夜祭でも「聴衆の半分は置いてきぼりになるかもね」みたいな話をしていたのですが、意外にも「分かりやすかった」等の好意的な反応をtwitter等でいただき、驚くと共に喜んでいます。土曜にPHPカンファレンスに来られるような方は意識が高いというの

  • MySQLのクライアントエンコーディング

    mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name            | Value                      | +--------------------------+----------------------------+ | character_set_client     | latin1                     | | character_set_connection | latin1                     | | character_set_database   | latin1                     | | character

    MySQLのクライアントエンコーディング
  • ケータイサイト制作前にコーダーが確認しておきたいところ │ これからゆっくり考L +α

    モバイルサイトの制作前に、もしくは打ち合わせに行った場合は必ずチェックしておきたいところをまとめてみました。 こちらから積極的に確認しないと、何も詳細が分からないままデザインだけぽーんと渡されてしまうことがあるので、自ら前のめりでチェックしておきたいところです。 個人的に「ここだけは外せない!」という項目は以下の6つ ・xhtmlhtml? ・文字コードは? ・tableは使ってOK? ・絵文字は? ・カタカナの扱いは?半角?全角? ・VGA対応は? xhtmlhtml? 最近は基xhtmlで作成という流れに(私の場合は)なってますが、それでも念のために一応聞いておきたいところ。 昔、xhtmlで作成してほぼほぼ終わった段階で「アップするサーバーでxhtmlが使えないのでhtmlに変更してください!」と言われてやり直したことがあります...。 文字コードは? 携帯サイトといったらSh

    pitworks
    pitworks 2010/07/11
    1,xhtml?html? 2.文字コードは? 3.tableは使ってOK? 4.絵文字は? 5.カタカナの扱いは?半角?全角? 6.VGA対応は?
  • iconv(1) コマンドの使用例

    © 1993-2007 Hewlett-Packard Development Company, L.P.

    pitworks
    pitworks 2010/05/12
    シフト JIS (sjis) を Unicode (utf8) に変換 : iconv -f sjis -t utf8 sjis_file.txt > utf8_file.txt
  • 新常用漢字表が迫るUnicode移行、「シフトJIS」では対応不可能 | 日経 xTECH(クロステック)

    普段使用する漢字の指針となる「常用漢字表」が、2010年度にも改正される。新たに追加される196文字の中に、文字コード「シフトJIS」にない漢字が含まれているため、情報システムに大きな影響を与えそうだ。最新のJIS規格「JIS X 0213:2004」の改正に委員としてかかわった京都大学人文科学研究所附属東アジア人文情報学研究センターの安岡孝一准教授が、問題の核心を解説する。     (日経コンピュータ) 2009年11月10日、文部科学省の「文化審議会国語分科会」において、常用漢字表の改正案が承認された。現行の常用漢字表にある1945字から「銑」「錘」「勺」「匁」「脹」の5字を削除し、新たに196字を追加する改正案で、2010年度の内閣告示を目指している。 新しい常用漢字表が告示されると、「シフトJIS」や「EUC-JP」といった従来からある文字コードを使用するシステムで大きな問題が生じ

    新常用漢字表が迫るUnicode移行、「シフトJIS」では対応不可能 | 日経 xTECH(クロステック)
    pitworks
    pitworks 2009/12/11
    常用漢字も棚卸して欲しいな。常用しない漢字もあるはずなのに、増やすばかりで削減しないでは”常用”とは言えない。
  • Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある - t_komuraの日記

    以下のページに関連して、htmlspecialchars() を使用している場合でも XSS が可能かどうか少し調べてみました。 http://www.tokumaru.org/d/20090930.html その結果、いくつかのブラウザで文字エンコーディングに Shift_JIS を使用していた場合、XSS が可能なことを確認しました。 テストコードは以下の通りです。リンクにマウスポインタを乗せると埋め込んだ Javascript が実行されます。 <?php $_GET['a1'] = "\xf0"; // \xf0 - \xfc で可能 $_GET['a2'] = " href=dummy onmouseover=alert(document.title) dummy=dummy"; header( "Content-Type:text/html; charset=Shift_JIS

    Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある - t_komuraの日記
  • 出力時の文字エンコーディング変換、妥当性確認について - t_komuraの日記

    大垣さんが以下のページで PHP について言及しておられますので、気になったことを書いておきたいと思います。 http://blog.ohgaki.net/rails-ruby-1-9 私は、現在、PHP で構築したサイト運用はしていませんので、出力時に文字エンコーディングを変換、妥当性確認する方法がどの程度有効で、どのような問題があるのかは十分把握していません。ある程度実施方法については書いておきますので、参考にされる方は、実用可能かどうかを十分検証してください。 出力時に文字エンコーディングを変換する方法 PHPで、似た様な動作にしたい場合(ブラウザ以外からの入力も怪しいなど)出力時に強制的に文字エンコーディング変換してしまえば良いです。例えば、 mbstring.internal_encoding = utf-8 mbstring.http_output = utf-8 と出力文字エ

    出力時の文字エンコーディング変換、妥当性確認について - t_komuraの日記
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

    pitworks
    pitworks 2009/09/15
    PHPを使う場合、データを入力した時点(ファイルなどからも含む)で文字エンコーディングの妥当性確認をするくらいしか、文字エンコーディングの問題に対する現実的な対策はない
  • UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - tohokuaikiのチラシの裏

    何故かあたり前にならない文字エンコーディングバリデーション | yohgaki's blog ってあるように、いまいち文字コードの不正な判定による危険性ってのが分かってない。 SJISの問題は、(2/3)SQLインジェクションを根絶!セキュア開発の極意 - 第5回■注目される文字コードのセキュリティ問題:ITproの記事がわかりやすかった。 というか、やっぱりPHP使ってると誰でも一度は「なんじゃこの『¥』は?」って思うもんなんで。 なるほど、確かに↓の図のように「あるバイト」が2つの意味を持つっていう文字コード形態はやばいんだなと。 EUC-JPはそんなことはしないで、1つのバイトには1つの意味しか取らせない。 だけど、これでも文字化けが起こることがある。経験的には、「マルチバイトをXX文字で切り落としたい」とかやった場合。ちゃんと文字コードを判定してくれるPHPでいえばmb_subst

  • 「メモ」携帯サイトをUTF-8で出力する方法とSEO評価 - komoriyaのはてなダイアリー

    DoCoMo,AU,SoftbankのモバイルサイトをUTF-8 + XHTMLで作った時の対応方法と、モバイルクローラーのUTF-8ページに対する評価 対応端末 DoCoMo - UTF-8で記述するにはXHTMLが前提なので、XHTML対応端末が必須になります。 AU EZwebでは文字コードの指定は必須です。 また、EZwebでサポートする文字コードはShift-JISです。 文字コードの指定が無い場合、Shift-JIS以外の文字コードを指定した場合には、コンテンツが正しく表示されない (文字化けする) 場合がありますのご注意ください。 404 Not Found - 推奨してないっぽい Softbank - HTML,XHTML対応してるけど推奨はしていない?ただShift_JISの場合、FORMからの絵文字の送信が怪しい挙動をするのでUTF-8の方がちゃんとしてる Conten

    「メモ」携帯サイトをUTF-8で出力する方法とSEO評価 - komoriyaのはてなダイアリー
    pitworks
    pitworks 2009/08/20
    DoCoMo,AU,SoftbankのモバイルサイトをUTF-8 + XHTMLで作った時の対応方法と、モバイルクローラーのUTF-8ページに対する評価
  • 第7回 Unicodeからの多対一の変換[前編] | gihyo.jp

    文字コードが引き起こすセキュリティ上の問題として、もっとも興味深いもののひとつである、Unicodeから他の文字コードへの「多対一の変換」で引き起こされる問題点について、今回と次回で説明します。 ご存じのとおり、Unicodeには非常に多数の文字が収録されていますが(現在最新版のUnicode 5.1.0では100,713文字が収録されているそうです⁠)⁠、Unicodeから他の文字コードへの変換においては、互換性や可読性の維持のためか、複数のUnicodeの文字が他の文字コードでは単一の文字に変換されることがあります。 この「多対一」の変換が、開発者も想定していなかったような問題を引き起こす原因となることが多々あります。 具体的な例として、Windows上でのUnicodeからの変換について説明します。 Windows上でのUnicodeからShift_JISへの変換 Windows上で

    第7回 Unicodeからの多対一の変換[前編] | gihyo.jp
  • そろそろUnicodeについて一言いっておくか - 未来のいつか/hyoshiokの日記

    文字コードの標準化について日記を書いたのだが、内容がいまいちだったのでボツにして気を取り直してUnicodeについて一言いっておくことにする。先日、といっても昨年(2008年)の10月なんだけど、その中でちょと文字コードの標準化について話をしている。*1 もう1つ自分の経験としてあるのが、漢字の文字コードがあるんですけど、番号で言うとJIS X 0208とか0212とか規格の番号で皆言うわけなんですけど、実は1988年にその日語の文字コードの改正の委員会にいたんですね。 その当時、私は 30歳ぐらいなんですけど、「富士通」とか「日立」とか「NEC」の部長さんぐらいの偉い人たちが来てて、私なんか外資系で且つ30前後のぺーぺーだから、全然格下なんですよ。 そういうところで議論の主軸を担ってるのは、「富士通」「日立」「NEC」「日IBM」「東芝」「沖」、外資でいえば「ユニシス」とかの錚々たる

    そろそろUnicodeについて一言いっておくか - 未来のいつか/hyoshiokの日記
    pitworks
    pitworks 2009/04/21
    Unicodeについて
  • 第1回 UTF-7によるクロスサイトスクリプティング攻撃[前編] | gihyo.jp

    みなさん、はじめまして。はせがわようすけと申します。 最近、文字コードと関連したセキュリティの話題を目にすることが増えてきました。文字コードを利用した攻撃は技術的に未開拓ということもあり、参考となる情報がなかなか見当たりません。この連載では、文字コードを利用した攻撃やそれに対する対策について正しい知識を解説していきます。 文字コードとセキュリティが関連するもっとも大きな点は、やはり文字列の比較でしょう。「⁠危険な文字列の検出」「⁠安全な文字列であることの確認」といった文字列の比較は、セキュリティを考えるうえで避けて通れない処理だと思います。 文字列の比較においては、単純にバイト列を比較するだけでは不十分で、文字列がメモリ上でどのようなバイト列として格納されているのか(このルールを符号化方式あるいは文字エンコーディングと言います)に注意しなければならないこともあるでしょう。攻撃者は巧みに文字

    第1回 UTF-7によるクロスサイトスクリプティング攻撃[前編] | gihyo.jp
  • 絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット

    前回までを振り返る--Unicodeコンソーシアムの影響力 前回はどこまでお話ししましたっけ。世界中の文字の収録を目的とした文字コード規格、Unicodeは、米国のIT企業を中心に結成されたUnicodeコンソーシアムが制定するデファクト規格に過ぎないこと。しかし公的な国際機関が定めるデジュール規格ISO/IEC 10646と同期することで、WTO/TBT協定にもとづき世界中の国々に普及させられるメリットを得たこと。 また、Unicodeコンソーシアム自体はオープンな組織だけれど、意志決定を行うUTC(Unicode Technical Committee/Unicode技術委員会)で一票を投じる権利を持つのは一握りの団体に限られること。そしてUTCはISO/IEC 10646のアメリカ・ナショナルボディであるL2委員会と合同でしか開催されておらず、同時にL2委員会とUnicodeコンソー

    絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット
  • 第9回■上流工程で文字集合仕様と文字エンコーディングを決定する

    これらの対策のうち,ここでは「文字集合の変換を伴う変換をしない」など,アプリケーション全体の文字コードの取り扱いについて上流工程で留意すべき内容について説明しよう。「入力値のチェック」については次回以降,「入力値の検証」の項で詳しく説明する。「アプリケーションでの正しいマルチバイト文字の処理」については,個別の処理内容の項で説明する。 文字コードの取り扱いについて,上流工程で留意すべき点としては,次の三つが挙げられる。 要求仕様として文字集合を定義する端末がサポートする文字集合を確認する実装に用いる文字エンコーディングを決定する まずアプリケーション仕様として,処理対象となる文字集合を規定する必要がある。日英語以外の韓国語や中国語,アラビア語などの対応が必要な場合はUnicodeを選択するしかない。さらに日語だけの場合でも,例えばJIS X 0201+JIS X 0208はJIS第2水準

    第9回■上流工程で文字集合仕様と文字エンコーディングを決定する
  • 絵文字が開いてしまった「パンドラの箱」第2回--Googleの開けてしまった箱の中味

    じつはコメントを送っていたNTTドコモ 最初に前回のおさらいをしておきましょう。スタート当初の携帯電話の絵文字には、キャリア間でメールのやり取りの中で文字化けしてしまう欠点があったこと、それを解決する仕組みをキャリア各社が作ったものの、その場しのぎの欠点の多いものであったこと、そして絵文字のUnicode符号化というのはそうした欠点を一挙に解決するはずであること。ついでにGoogle絵文字のUnicode符号化を進めることで、キャリア各社は今まで自分たちが育ててきた絵文字の主導権を奪われてしまうということも。 それから前回の最後では、キャリア各社に対してGoogleの提案についてどう思うか、パブリックレビューに参加する意向があるかを聞いてみました。そこでの回答は、各社そろって消極的と受け取れるものでした。 ところが前回の掲載後に、NTTドコモがGoogle絵文字メーリングリストに投稿し

    絵文字が開いてしまった「パンドラの箱」第2回--Googleの開けてしまった箱の中味
  • ケータイの絵文字はどこまでズレるのか - 帰ってきた💫Unicode刑事〔デカ〕リターンズ

    ケータイの絵文字について、各キャリアの「他社用変換表」を見ると、ゲタにするよりはマシだろうということなのだろうが、けっこう強引というか、感覚的な対応も多く、ラウンドトリップの互換性は保証されない。 つまり、絵文字入りのメールを他社ケータイに送信し、さらにそれを引用して送信するというプロセスを繰り返した場合、伝言ゲームのように少しずつ絵文字の意味がズレていく可能性がある。 というわけで下図は、適当に拾った例で、絵文字がどんなふうに変化していくのかシミュレートしたもの(16進数はShift-JISコード)。文脈によっては、キケンなニュアンスに変わったりすることもあるかも。

    ケータイの絵文字はどこまでズレるのか - 帰ってきた💫Unicode刑事〔デカ〕リターンズ
    pitworks
    pitworks 2009/03/07
    携帯メールに絵文字を入れて転送し続けるとキャリア間の絵文字変換でどうなるか?
  • 絵文字が開いてしまった「パンドラの箱」第1回--日本の携帯電話キャリアが選んだ道

    Unicodeが携帯電話の絵文字を収録へ 絵文字ってなに?そう聞かれても多くの人は、ああ、それはと答えられるはず。そう言えばちょっと前に『メールのハートマークにだまされるな! 8割の女性は「恋人以外にも使う」』(RBB NAVI)なんていうニュースもありました。携帯電話の個人普及率が9割を上回る(平成20年内閣府消費動向調査)この国において、絵文字はごくありふれたものになっている現実があります。 2008年の11月27日、Googleが携帯電話で使われる絵文字を国際的な文字コード規格、Unicodeに収録しようというプロジェクト進行中であることを発表しました。では、このニュースは何を意味するのでしょう。そして私たちに何をもたらすのでしょう。今回から3回に分けて考えてみようと思います。 まず歴史を振り返ってみましょう。じつは絵文字を使ったのは携帯電話が最初というわけでありません。先行するもの

    絵文字が開いてしまった「パンドラの箱」第1回--日本の携帯電話キャリアが選んだ道