タグ

codingとtextencodingに関するcu39のブックマーク (25)

  • プログラミング言語における文字コードの話

    世の中がほぼUnicode前提になってめでたしめでたし。とはいかなかった現実の話。 String型でできる文字列処理とか、ソースコード自体、特に識別子で使える文字とか。 軽くおさらい: Unicode まあいろんなところでいろんな人が書いてると思うのでさらっと概要だけ。 Unicodeは、元々、「65,536文字あれば十分だろ」とかいう幻想の元、2バイト固定長の文字コードとして作られていました。 もちろん足りなくて、ビット数を拡張。基が2バイトのままでこの拡張した分を取り扱えるようにしたのが今のUTF-16で、拡張分は2文字分(4バイト)を使って表現。 この、2文字分使って1文字を表すやつのことをサロゲートペア(surrogate pair: 代理対)と呼びます。 あと、ASCII文字も2バイトになるのを欧米人が嫌って、ASCII文字はASCIIコードのまま、逆に漢字・ひらがな・カタカナ

    プログラミング言語における文字コードの話
  • Unicodeの似た文字を整理してみた - y-kawazの日記

    XMLやCSV等のデータをJavaで色々加工して出力したりといったことをしてると必ずハマるのが波線などの文字化け問題です。 文字化けが発覚するたびにググって場当たり的な対処を繰り返すのに疲れたのでよく問題になる文字と形が似た文字をリストアップして、更にそれをJavaで各種エンコーディングに変換したらどの文字になるかを頑張って纏めました。 ついでに文字化けしないよう上手いこと出力可能な文字に置換する関数も作ってみました。 Javaの変換テーブル 表中の U,S,W,E,J はそれぞれ、UTF-8、Shift_JIS、Windows-31J、EUC-JP、ISO-2022-JP で出力した際の文字です。 見た目で分からないくらい似た文字ばかりなので、各セルにマウスカーソルを乗せたらツールチップで確認できるようtitleにコードポイントを書いておきました。 分かりやすいよう、青は文字化けなし、黄

    Unicodeの似た文字を整理してみた - y-kawazの日記
  • Unicode/UTF-8-character table

    UTF-8 encoding table and Unicode characters page with code points U+0000 to U+00FF We need your support - If you like us - feel free to share.help/imprint (Data Protection)

  • 文字コード変換ミスによる文字化けパターンと想定される原因 - drk7jp

    とあるシステムでデータベースから引いてきたデータの表示が文字化けするという不具合がありました。 データベース内のデータとしては文字化けしていない状態で格納されていることはわかっていたので、どこかしらの文字変換で化けていることはわかっています。まずはどの誤変換により文字化けするのか原因切り分けのために、decode/encode の組み合わせによる文字化けパターン一覧を作りました。おかげさまでどのパターンに類するものか判別することができ、無事に改修することができました。 その話はまた別にするとして、今も昔も変わらず文字化けに悩む人は意外と多いと思います。誤変換結果一覧は原因解析の参考になると思い、記事としてまとめることにしました。 文字コード変換ミスによる文字化けパターンを可視化するプログラムと一覧表 まずは誤変換を生成する perl スクリプトです。プログラムはとっても簡単で、「文字化けで

  • はてなブログ | 無料ブログを作成しよう

    2025年8月台湾・高雄ってまじいいんだよな~女一匹14日間(ちょっとだけ台中女二匹)記 みんな~~~~~~~!先に言うけど高雄は最高!!!!!!!!! 可愛いアイスクリームも「そうだ そうだ」と言っています 台湾自体は何度も行ったことがあるんだけど、高雄は2度目です。 去年夏休みに初めて10日滞在してめちゃくちゃ好きになってしまったので、今年…

    はてなブログ | 無料ブログを作成しよう
  • Vim: エンコーディング関係の設定の仕方 - while (”im mirrored”);

    vimVimでのエンコーディング関係のオプションは次の通り:'encoding'グローバルなオプション。Vimが内部で用いるエンコーディングを指定する。バッファやレジスタやVimスクリプトでの文字列の中身はこのオプションで指定されたエンコーディングが用いられる。また、他のエンコーディング関係のオプションが未設定ならばデフォルトの値としても用いられる。基的にvimrc以外で変更すべきではない。また、このオプションを変更しても既存のバッファやレジスタやVimスクリプトでの文字列の中身のエンコーディングは変化しない。(なお、ヘルプでは明言されていないがsystem()の結果は常に'encoding'として扱われ、'fileencoding'への変換は行われない。変換を期待する場合は:read!を使う必要がある。このためにvcscommandは一部で不具合が出る。)'fileencoding'バ

  • Gitの外部エディタにTextmateやvimを使う - Seasons.NET

    Gitの外部エディタとして、core.editorを設定すればそれが利用できるわけですが、 VIMの場合 git config --global core.editor 'vim -c "set fenc=utf-8"' TextMateの場合 git config --global core.editor 'mate -w' このように設定して下さい。

    Gitの外部エディタにTextmateやvimを使う - Seasons.NET
  • 文字コードに起因する脆弱性とその対策

    PHPカンファレンス2010テックデイでの講演資料 PDFダウンロードは http://www.hash-c.co.jp/archive/phpconf2010.html

    文字コードに起因する脆弱性とその対策
    cu39
    cu39 2010/09/25
    Shift_JISの「5C問題」、EUC-JPの「蛍問題」、UTF-8の「非最短形式問題」など。
  • Project Web of pykf on OSDN Web space

    To all developers of pykf This page is a skeleton web page which was automatically set up by OSDN system. The purpose of this page is to encourage the full use of the project web. You can use the project web area to freely build Web sites to provide project information. For more details on the functions and rules of the project Web and how to use it, please read the documents regarding web site ho

    cu39
    cu39 2010/04/07
    ShiftJIS, EUC-JP, JIS相互変換。2.6未対応(ブクマ時点)。
  • 文字コード判定ライブラリ Universal Encoding Detector

    Universal Encoding Detector は Mozillaのコードが移植された、文字コードを判定するライブラリです。 とりあえずの使い方はとっても簡単で文字(列)をdetect()するだけで、推定されたエンコーディングと信頼度が返ってきます。 サポートされている文字コードも文句ありません。 「あ」1文字のように入力文字列が短すぎる場合の判定は常に信頼度0.505と出てましたがエンコーディングは合っていました。実用では1文字から推定するなんて皆無なので何も心配することはないでしょう。 <  | >

  • Universal Encoding Detector: character encoding auto-detection in Python

    Character encoding auto-detection in Python. As smart as your browser. Open source. >>> import urllib >>> urlread = lambda url: urllib.urlopen(url).read() >>> import chardet >>> chardet.detect(urlread("http://google.cn/")) {'encoding': 'GB2312', 'confidence': 0.99} >>> chardet.detect(urlread("http://yahoo.co.jp/")) {'encoding': 'EUC-JP', 'confidence': 0.99} >>> chardet.detect(urlread("http://amazo

  • Is there a Python library function which attempts to guess the character-encoding of some bytes?

  • 文字コード入門

    コンテンツ一覧 インデックスページ←いまここ コンピュータ上での数値の扱い コンピュータで文字を扱うには? ASCIIとJISローマ字 JIS漢字コード:JIS第一・第二水準 JIS補助漢字・第三・第四水準漢字 中国の文字コード 台湾の文字コード Unicode 大規模文字集合 参考資料(書籍) ページを作るにあたって参考にした書籍です。 川俣晶『パソコンにおける日語処理文字コードハンドブック』技術評論社 芝野耕司編『JIS漢字字典』日規格協会 漢字文献情報処理研究会編『電脳中国学』『電脳中国学II』『電脳中国学入門』好文出版 小池和夫/府川充男/直井靖/永瀬唯/『漢字問題と文字コード』 太田出版 1999 安岡孝一/素子『文字コードの世界』 東京電気大学出版局 1999 ユニコード漢字情報辞典編纂委員会編 『ユニコード漢字情報辞典』 三省堂 2000 小林/安岡/戸村/三上編 bi

  • perl, python & ruby - ord() vs. Unicode : 404 Blog Not Found

    2006年11月26日02:45 カテゴリLightweight Languages perl, python & ruby - ord() vs. Unicode というわけで、ord篇はこちら。 404 Blog Not Found:perl, python & ruby - chr() vs. Unicode とりあえずchrが長くなったのでordは別entryということで。 文字から数値へ(ord) まずはPerlの例。 #!/usr/local/bin/perl use strict; use warnings; use utf8; binmode STDOUT, ':utf8'; sub say { print @_, "\n" }; say ord "\x{61}"; say ord "\x{3b1}"; say ord "\x{5F3E}"; say ord "\x{2A6

    perl, python & ruby - ord() vs. Unicode : 404 Blog Not Found
  • perl, python & ruby - chr() vs. Unicode : 404 Blog Not Found

    2006年11月23日22:00 カテゴリLightweight Languages perl, python & ruby - chr() vs. Unicode というわけで、404 Blog Not Found:There's more than one language to cook your problemsでPython & Ruby Cookbooksを一気読みしたので、気になる点を少しずつ書いて行くことにする。 まずは、文字の扱い。文字列でない点に注意。 少なくとも、文字列をバイト列と見なして相互変換することは、LLに限らずたいていの言語で出来るようになったのだけど、文字を文字として扱うという点に関しては各言語ともまちまちで、多言語派の私としては結構頭のいたいところ。 ここでは、私が一番流暢なPerlを軸に、RubyPythonではどうなっているのかを調べてみた。 数値

    perl, python & ruby - chr() vs. Unicode : 404 Blog Not Found
  • PythonのUnicodeEncodeErrorを知る - HDEラボ

    Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ

  • 絵文字が開いてしまった「パンドラの箱」第5回--絵文字と日本マンガの親密な関係

    絵文字の収録をめぐって、国際規格で大論争--「Google提案」を振り返る 皆さんこんにちは、面白くてタメになる(?)文字コード漫談の時間がやってまいりました。2月からとびとびで書いてきた絵文字の報告も、いよいよ今回が最終回。どうかよろしくお付き合いください。 さて、前回はどこまでお話ししたのでしたっけ。日絵文字をUnicodeに収録しようとするGoogleAppleによる提案(以下、主導者の名をとりGoogle提案と略)ですが、去年の12月にパブリックレビューが開始されると、Unicode-MLで時ならぬ非難の嵐が吹き荒れたこと。そこでの反発を一言で言い表すなら、日文化に強く依存する絵文字を単純に国際規格に収録しようとした点にあったこと。 なぜなら国際規格の審議は参加各国の総意で成り立っており、特定の国しか便利に使えない文字を収録することは、当然強い反対をうけるからです。さらに

    絵文字が開いてしまった「パンドラの箱」第5回--絵文字と日本マンガの親密な関係
    cu39
    cu39 2009/09/22
    ど、どうなったんだー
  • Unicode正規化

    正しい並び替えでは、表示は(A)のままですが、間違った並び替えでは、正規結合クラスが互いに等しいMACRONとACUTEを並び替えたため、表示は(B)のように、eの上のアクセント記号の位置が入れ替わってしまいます。 正規分解・互換分解 ある文字列の正規分解 (Canonical Decomposition) を得るには、まず、それぞれの文字を正規マッピングによって再帰的に、可能な限り、分解します。すなわち、1回分解した後に現れた文字がなおも分解可能であればさらに分解します。分解マッピングがその文字自身である場合は、分解不可能なので、そのままです。 しかし、分解しただけでは必ずしも正しい結果が得られません。つまり、結合文字の順序の一意性を保証するため、分解後の文字列に対して正規順序アルゴリズムを適用しなければなりません。このように、正規マッピングによる再帰的分解と、正規順序アルゴリズムによ

  • Perlで日本語(ISO-2022-JP)メールを送信(まとめ) - kopug memo

    UTF-8で作成されたメール文をMIME::Lite及びEncodeを使用してメールを送信をする。 そこで問題となってくるのが下記の3点。 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ") 2.機種依存文字が含まれていた場合の対応 3.MIME::Lite で smtp送信する場合、Return-Pathが有効にならない 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ")に関する解決方法: これは有名らしいのですが、Encode::JPが採用している UnicodeConsortium の写像表 に問題があるとかで、 一部の文字が化けます。チルダとか。 しようがないので こんな風に対応しておきました。 my %map = ( "\x{ff5e}" => "\x{301c}", # 〜 (1-33, WAVE DASH) "\x{2225}" => "\x{201

    Perlで日本語(ISO-2022-JP)メールを送信(まとめ) - kopug memo
  • ingrid.org