タグ

unicodeとutf8に関するtakaesuのブックマーク (5)

  • UTF-8からSJISに変換する時にはShift-JIS系エンコードの種類だけじゃなくてUNICODE正規化も気にしないとダメという話

    UTF-8からSJISに変換する時にはShift-JIS系エンコードの種類だけじゃなくてUNICODE正規化も気にしないとダメという話 利用シーン UTF-8で記述されたテキストをShift-JISエンコードに変換する機会はあります。 UNICODEで表現できる文字の種類の方がShift-JISに比べて圧倒的に広いのですべての文字が変換できるわけではありませんが、「これは変換できてよかろう」というものまでこぼれ落ちるケースは多数あります。 以下こぼれ落ちる例とその対応を示します。 サンプルコード まずはサンプルコード。 rubyで記述していますが、原理はどの言語でも同じです。 str = "あ~あ①髙島屋パバぱ" sjis = str.encode(Encoding::Shift_JIS, :invalid => :replace, :undef => :replace) File.

    UTF-8からSJISに変換する時にはShift-JIS系エンコードの種類だけじゃなくてUNICODE正規化も気にしないとダメという話
  • 機種依存文字とUnicode - WebStudio

    導入 機種依存文字と呼ばれる文字があります。 例えばWindowsでは、 大文字のローマ数字(ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ)、 小文字のローマ数字(ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ)、 丸囲み数字(①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳)、 丸囲み文字(㊤㊥㊦㊧㊨)、 カタカナ表記の単位(㍉㍍㌔㌘㌧㌦㍑㌫㌢)、 単位記号(㎝㎏㎡)、 複数のアルファベットを合成した文字(㏍℡№)、 元号(㍻㍼㍽㍾)、 会社名等で用いられる括弧囲み文字(㈱㈲㈹)等が機種依存文字と呼ばれています。 機種依存文字は一般的に、異機種間でデータの交換を行った場合、 例えばWindowsで作成したテキストファイルをMacintoshで表示した場合に文字化けしてしまうので、 これら異機種でデータ交換することを前提としたインターネットでは利用するべきではないと言われています。 しかし、これらは機種依存文字と呼ばれているものの、 その意味はあ

  • ruby1.9でBOM付きutf-8のファイルの内容をShift-JISに変換する

    utf-8のファイルの中身をShift-JISに変更しようと思ったらエラーが出たのです。 以下のような感じを実行しようとしたら、 aaa = open("aaa.csv").read p aaa.encode("cp932") 以下のようなエラーが出てしまったのです。 in `encode': U+FEFF from UTF-8 to Windows-31J (Encoding::UndefinedConversionError) どうやら変更しようとしたファイルは、もBOM付きutf-8というものだったようです。 ちなみにBOMとは、バイト順マーク(Byte Order Mark)というもののようで、文書ファイルの先頭に付ける EF BB BF という3バイトのバイナリデータのことのようです。ファイルの文字コードがUTF-8であることを明示するために付けることもあるようです。 で、エラー

    takaesu
    takaesu 2015/02/11
    Bomを削除する方法
  • UTF-8のBOMの削除でハマる

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « bashで多重起動を防止する(その2) :: DoS 攻撃の判断基準を IPA が策定へ » 2010/11/29 UTF-8のBOMの削除でハマる  java  ruby  charset  regex 257 2へぇ XalanでXMLをXSL変換するプログラムを書いたら、そのうちの1つのXMLが下記のエラーを吐いて変換できなくてハマってしまいました。 Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: An invalid XML character (Unicode: 0xfffe) was found in t

    UTF-8のBOMの削除でハマる
  • UTF-8にもいろいろある - ザリガニが見ていた...。

    前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわる悩みとはおさらばできると思ったら、まだダメだった...。 実験環境 OSX 10.8 Mountain Lion以前((OSX 10.9 Mavericksでは、Mac仕様なNFDのUTF-8を表示しようとするとエラーになってしまったため、10.8以前の環境で実験した。Assertion failed: (width > 0), function conv_c, file /SourceCache/shell_cmds/shell_cmds-175/hexdump/conv.c, line 137. ** ** Abort trap: 6

    UTF-8にもいろいろある - ザリガニが見ていた...。
  • 1