タグ

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

  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
  • 新人さんに知ってほしい「文字コードのお話」 - Qiita

    文字集合の組み合わせも可能 2. Unicode,UTF-8, UTF-16 Unicodeの前に、まずはASCIIの説明 American Standard Code for Information Interchangeの略 最も基的な文字コード。1960年代に開発。 ISO/IEC 646国際基準版と同等 ASCIIの構造 7bitで128文字収録 0x00~0x1Fは制御文字(タブや改行など) Unicodeとは? 世界中の文字を扱えるようにした文字コード。 従来は国や地域ごとに、文字コードを切り替える必要があった。 たとえば、Shift_JISでは[é]のようなアクセント記号を表せない。 ISO/IEC 10646と同等。1993年制定された。 Unicode(UCS-4)の構造 4バイト符号。 各バイトが、郡、面、区、点に対応する。 面、区、点は00~FF(256)まで、郡は

    新人さんに知ってほしい「文字コードのお話」 - Qiita
  • 「iPhoneのMailから送ったメッセージ全体が文字化け」のまとめ - 帰ってきた💫Unicode刑事〔デカ〕リターンズ

    (2013年10月追記1)iOS 7の登場以来、このエントリへのアクセスが増えているので、情報を追加。iSO 7では、以前はauのiPhoneなどでしか発生しなかった「送信したcharset=CP932のメールが、Android端末で化ける」現象が、SoftBank iPhoneでも発生するようになった。詳しくは「iOS 7にしたら送信したメッセージが化けるようになった」を参照。 (2013年10月追記2)実際に確認できてはいないのだが、iOS 7の仕様変更により、iPhoneのメールアプリからSoftBankのケータイに絵文字を含むメールを送った場合、メッセージ全体が化けるのではないかと思われる(これに該当する経験をお持ちの方、コメント欄などで情報をいただけるとありがたいです)。 (2013年10月追記3)iOS 7がらみで(メッセージ全体が化けるのではなく)絵文字が表示されない問題につ

    「iPhoneのMailから送ったメッセージ全体が文字化け」のまとめ - 帰ってきた💫Unicode刑事〔デカ〕リターンズ
  • 改行コードの「^M」を削除する方法

    改行コード「^M」を削除する方法を紹介します。 1.「^M」とは 「^M」は改行コードの「CR(復帰)」を指します。 「CR」はアスキーの制御コードです。 題の前に、なぜ「^M」が「CR」を指すのか調べてみました。 まず「^」はCtrlキーを意味します。 次に、半角英文字の「M」は、ASCIIコードの10進数「77」が対応します。 つまり「^M」はCtrlキーを押しながら「M」を押下することを意味し、Ctrlキーを押下すると、同時に押下した文字のASCIIコードから「-64」されます。 つまり「M(77)」はCtrlキーを押下することで「13」になります。 「13」はASCII制御コード「CR」になります。 Wikipedia - ASCII 2.「^M」が表示されるケース Windows上で作成したテキストファイルの改行コードは「CR+LF」なので、この改行コードのままLinuxに転送

    改行コードの「^M」を削除する方法
    masudaK
    masudaK 2015/11/04
    なやましい。
  • 文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog

    ごあいさつ 皆様はじめまして、文字コードおじさんです。細々とカメラ屋を営んでおりましたが、エンジニアとしての技量を評価され、ALBERTのシステム開発・コンサルティング部で働くことを許されました。特技はサーバーの統廃合です。 今回は最初ということですが、Unicodeにおける全角・半角の取り扱いについて触れてみようと思います。なお、さも連載するかのように第1話と銘打っていますが、上層部の無慈悲な裁決によっては1話打ち切りもありえますので、その際はご容赦ください。 固定観念を捨てよう 「全角50文字、半角100文字まで」といったような文言を見かけたことがあると思います。 特にUnicode以前のレガシーな処理系では全角文字に2バイト、それ以外は1バイトという割り当てが慣習となっていました。 このため、「全角=2バイト文字、半角=1バイト文字」という観念が世間に定着しているのが現状です。 しか

    文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog
  • Unicodeを斬りたい

    ※2014/4/17 記事の内容に関していくつか訂正させていただきました。 ご指摘いただいた皆様ありがとうございました。 誤字脱字を修正しました。 ソースコードの間違いを修正しました。 BOMの記述を分かりやすい表現に修正しました。 合字に関する記載を追記いたしました。 こんにちは。 Yahoo! JAPANで通知プラットフォームの開発をおこなっています佐々木海(@Lewuathe)と申します。 普段は全社向けのPush通知プラットフォームやメール配信プラットフォームの開発、保守をしています。通知というのはPush通知にしろ、メール配信にしろ基的には「テキストデータ」を送ることになります。プラットフォーム内ではこれらのテキストに対してさまざまな処理をかけることになるのですが、さすが日語といったところでしょうか、一筋縄ではいかない部分が出てきました。具体的にはUTF-8でエンコーディング

    Unicodeを斬りたい
  • How to remove special 'M-BM-' character with sed

  • Trasis Lab » Java7では中黒(・)をメソッド名として利用できない

  • 欢迎光临-HB

    欢迎光临-HB 欢迎光临-HB。 <<<返回首页

  • Rubyのエンコーディングその2 - tmtms のメモ

    この前「Rubyのエンコーディング」という記事を書いたのですが、それをネタに 8/25 の NSEG で発表しました。 Rubyのエンコーディング from Masahiro Tomita この中で、エンコーディングが原因で予期しないところで落ちてしまうことが結構あるという話もしたんですが、今回はプログラムが落ちないようにするにはどうすればいいかを考えてみます。 エンコーディングが原因で落ちてしまうのは大体次のパターンのようです。 文字列や正規表現のエンコーディングが異なる 文字列中に不正な文字が含まれている 文字列や正規表現のエンコーディングが異なる 正規表現をリテラルで生成していれば、エンコーディングは敢えて指定しない限りは普通はスクリプトエンコーディングになってると思うので、問題は文字列の方です。 特にファイルから読み込んだ文字列のエンコーディングが何になっているかに注意しましょう。

    Rubyのエンコーディングその2 - tmtms のメモ
  • Rubyのエンコーディング - tmtms のメモ

    Ruby 1.9 から文字列や正規表現オブジェクトはそれぞれエンコーディング(いわゆる文字コード)を保持するようになりました。 たとえば 0xB1 0xB2 という2バイトは EUC-JP エンコーディングでは「渦」、SHIFT_JIS エンコーディングでは「アイ」という文字になります。つまり同じバイト列でもエンコーディングが異なれば異なる文字として解釈されます。 1.8 では文字列はただのバイト列でした。なので、それがどのような文字を表しているのか、つまりエンコーディングが何なのかはプログラムが知っている必要がありました。 1.9 では文字列オブジェクト自身が自分が何のエンコーディングかを知っています。同じ 0xB1 0xB2 というバイト列でも、それが EUC-JP の「渦」なのか SHIFT_JIS の「アイ」なのかは、文字列自身が知っています。 スクリプトエンコーディング スクリプ

    Rubyのエンコーディング - tmtms のメモ
  • Python の unicodedata モジュール - bkブログ

    Python の unicodedata モジュール Unicode のちょっとしたテキスト処理をしようと思い、 Python の unicodedata モジュールを使ってみました。これは非常に便利です。 unicodedata は Python に標準で付属するため、別途のインストールは不要です。次のようなことができます。 文字の名前を取得する 文字の名前を取得することができます。Unicode の文字にはすべて一意の名前がつけられています。ソースコード内で Unicode のコードポイントを使うときは U+20AC (EURO SIGN) などとコメントをつけておくと便利でしょう。 >>> unicodedata.name(u'A') 'LATIN CAPITAL LETTER A' >>> unicodedata.name(u'あ') 'HIRAGANA LETTER A' 文字の

  • MySQL 5.5 の unicode collation で同一視される文字 - tmtms のメモ

    MySQL の collation について調べてたら、 今回の実験で、utf8_unicode_ciによる大文字-小文字や全角-半角の同一視に 関する動作はなんとなく分かりましたが、どの文字が同一視されるのかを記載した資料ってあるのだろうか? http://d.hatena.ne.jp/end0tknr/20100613/1276427626 という記事を見かけたので調べてみました。 MySQL の マニュアルによると UCA というアルゴリズムを使用しているようです。 MySQL implements the xxx_unicode_ci collations according to the Unicode Collation Algorithm (UCA) described at http://www.unicode.org/reports/tr10/. The collatio

    MySQL 5.5 の unicode collation で同一視される文字 - tmtms のメモ
  • MySQL の照合順序の命名規則 - TETLIST

    TETLIST 愛と平和について……嘘。情報系大学院の院生が、そこそこ IT インフラストラクチャ、そこそこ開発について書くこともある個人日記。 MySQL の照合順序って難しいですよね。 使いこなすと便利そうだけれども。 照合順序に関するおさらいとか。 そもそも照合順序って "照合順序"とは、MySQL (に限らないけど)が文字を比較するときの基準・規則です。"Collation" という英単語からきています。「照合順序」という和訳からはわかりにくいのですが、「照合(等しいか等しくないか)と順序(順番が前か後か)を比較する際のルール」です。「>」「=」「<」のどれかということですね。 例えば、SQL文で次の比較文はどう評価されるでしょうか? ‘A’ = ‘a’ プログラミングとかを少しやっていると、 False が返される気がしてきますが、MySQLは「照合順序」によって True も

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

  • 文字コード(UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP)についての俺的まとめ - 今日もスミマセン。

    「プログラマのための文字コード技術入門」を読んで自分なりに理解した点をザックリとまとめてみる。 それほど正確性を求めて書いているわけではないので、間違ってる可能性大です。 間違いなどあればコメントなど頂けるとありがたいです。 それぞれの文字コードはどう違うのか? 日語の文字コードは大きく以下の2つに分けられる JIS X 0208 文字集合をベースにしたもの Unicode文字集合をベースにしたもの JIS X 0208 文字集合をベースにした文字コードには、EUC-JP, Shift_JIS, ISO-2022-JP がある。 Unicode文字集合をベースにした文字コードには、UTF-8, UTF-16 などがある。 上で挙げた「文字コード」とは正確には「エンコーディング(文字符号化方式)」の事を指す。 文字符号化方式 文字集合って? 読んでそのまんま”文字の種類の集まり”。「キャラ

    文字コード(UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP)についての俺的まとめ - 今日もスミマセン。
  • 1