タグ

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

  • JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io

    Intro textarea などに入力された文字数を、 JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、 BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID

    JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
    jitojito
    jitojito 2017/03/04
    バリエーションセレクタが出ていない気がしたので、一点しんにょうの「辻」 は U+8FBB と U+E0100 (IVS) で 3文字になったり。Unicodeの闇は深い…
  • Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita

    Stringの比較は正規化をかけた上で行われる Swiftの文字列比較は,Unicode正規化をかけた上で行われます。 たとえば,次の例をご覧ください。 let gaC = "\u{304C}" // 「が」の結合形 let gaD = "\u{304B}\u{3099}" // 「が」の分解形 // NSString としての文字数(UTF16での文字数)は異なる (gaC as NSString).length // => 1 (gaD as NSString).length // => 2 // String としての比較 gaC == gaD // => true (!!) これは,こちらのサイトによると, Depending on your requirements, this may or may not be what you want, but it is certainl

    Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita
    jitojito
    jitojito 2014/10/27
    shift_jisの闇を抜けられると思ったら、さらに闇だった。
  • プロジェクトX0213

    JIS X 0213利用者有志による、相互扶助を目的としたウェブサイトです。 このサイトはβ版です。 JIS X 0213 Wiki JIS X 0213のコード対応表 (2006年5月公開) 常用漢字と文字コードの対応表 - 2010年に改定された常用漢字とJIS X 0213およびUnicodeとの対応表 (2012年7月公開) 人名用漢字と文字コードの対応表 - 2012年現在の人名用漢字とJIS X 0213およびUnicodeとの対応表 (2012年7月公開) [NEW!] 日語ローマ字綴りのための拡張ラテン文字コード表 (2013年10月公開) 漢字検索 - JIS第1〜第4水準の漢字が読みや構成要素などから検索できます (2007年6月公開)

  • Encode::decode_utf8()であってもis_utf8()を使うべき理由 - このブログはURLが変更になりました

    404 Blog Not Found:#perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 Validationの観点だけではなく、簡潔性の観点からも、Encode::decode_utf8()はおすすめです。すでに UTF-8 flag がついた文字列はそのままコピーするだけなので、条件分岐も不要です。 これは厳密にはこうなる。 Validationの観点だけではなく、簡潔性の観点からも、Encode::decode_utf8()はおすすめです。すでに UTF-8 flag がついた文字列はEncode-2.13以降であればそのままコピーするだけなので、条件分岐も不要です。 Encode-2.12ではそのままコピーしてない。そのままコピーするのは2.13以降での実装。 --- Encode-2.12/Encode.pm 2005-0

    Encode::decode_utf8()であってもis_utf8()を使うべき理由 - このブログはURLが変更になりました
  • 機種依存文字

    1997年5月24日 新規作成 1997年6月7日 『OASYS 明朝体』フォントでの機種依存文字を追加、細かい修正 1997年12月25日 『シフトJIS上でのJIS漢字の未定義領域』に 121区~126区を追加 2000年1月20日 『『MS ゴシック』フォントでの機種依存文字』の91区、92区、115区~117区の説明に一部誤りがあったのを修正(ご指摘ありがとうございます) このページに [戻る] を追加 機種依存文字とそうでない文字はどのようにすれば見分けられる? JIS X 0208 というJIS規格(JIS漢字)の符号表上の空き領域に各メーカーが 独自に定義した文字を機種依存文字と呼んでいます。 ある特定の文字が機種依存文字なわけではなく JIS漢字で定義されていない 領域に定義された文字を便宜的に機種依存文字と呼んでいるだけです。 この事の意味する所は、現在機種依存文字とされ

  • 第33回 enc2xs:標準の文字コード表にはない文字を変換する | gihyo.jp

    Encodeを使っても文字化けするとき Encodeは特定のエンコーディングにしたがって配列されたバイナリを「文字列」に置き換えるためのモジュールですが、かならずしもすべてのエンコーディングがあらゆるバイナリの組み合わせに対応しているわけではありません。 たとえば、「⁠シフトJIS」環境における機種依存文字の例としてよく取り上げられる丸付き数字をEncodeのお作法通りにdecode、encodeする場合、「⁠シフトJIS」だからと思って安易にshiftjis系列のエンコーディングでdecodeしてしまうと、丸付き数字のマッピングデータがないため「?@」のように文字化けを起こしてしまいます。 use strict; use warnings; use Encode; my $binary = pack('C*', 0x87, 0x40); # ①; my $string = decode(

    第33回 enc2xs:標準の文字コード表にはない文字を変換する | gihyo.jp
  • Windows環境でUnicodeファイルを扱う - JPerl Advent Calendar 2009

    こんにちわ!クリスマスを過ぎるとニートになることが決まっている xaicron です! ハッカーでもなんでもないのですが、勢いに任せて登録してみました!!すいません>< はじめに 今日は、Windows環境以外の人は何にも関係ない、モジュール Win32::Unicode をご紹介しようとおもいます。 しかもまた文字コード関連の話ですね!!にEncodeでラクラク日語処理を読んでから詠むと、より理解が深まるかもしれません。 Win32::Unicodeって? Windowsperl を使う場合の選択肢としては ActivePerl と Strawberry Perl の二種類があげられます。 どちらも Windows 用にカスタマイズされたものなのですが、悲しいことにどちらの Perlを使っても Unicode 文字の含まれたファイルが扱えません。 でもそれだと悲しいので、Unic

  • 【社内勉強会】文字コード入門 理論編|TechRacho by BPS株式会社

    最近社内で文字ものEPUBを扱う機会が増えてきたため、IVS/IVDやJIS X 0213の会話が飛び交うようになってきました。 そこで理解のベースアップとおさらいのために、今週の社内勉強会は「文字コード入門」を開催しました。 概要 用語と解説 文字集合(Character Set)と文字エンコーディング(Character Encoding Scheme)、符号位置(Code Point)と実際のバイト列の違い 色々な符号化文字集合と含まれる文字 クイズ ブラウザアドレスバーのこの日語、エンコーディングはどれ? 7bit文字エンコーディングはどれ? ASCII互換エンコーディングはどれ? バイト列から文字長を求められるのはどれ? UTF-8の最大バイト数は? 実際に存在する標準規格はどれ? まとめ Webアプリを作る程度では、文字コード関連はよく分からず適当にやっても「なんとなく動く」

    【社内勉強会】文字コード入門 理論編|TechRacho by BPS株式会社
  • Twitter時代の文字の数え方 | 配電盤

    入力「×」のブラウザでは、「𠮷」が2文字とみなされるため、2文字目まで、つまり「𠮷野」までしか入力できません。 Mozillaの文書には、Unicode code pointsで数えると書いてあるので、そのうち改善されるのかもしれませんが、現時点ではTwitterのために「maxlength="140"」を使うことはできません。 pattern属性 Firefox 21とChrome 27、IE 10、Opera 12.15は、「pattern=".{0,3}"」(任意の文字からなる0から3文字)のような正規表現を使った検証にも対応していますが、やはり「𠮷野家」は4文字とみなされてしまいます。 JavaScript 追記:javascript – でBMP以外のUnicode文字をきちんと扱う(404 Blog Not Found) JavaScriptでは、文字列strの長さをst

  • 『Unicode IVS/IVD入門』へのツッコミ・第4章編 - 帰ってきた💫Unicode刑事〔デカ〕リターンズ

    『Unicode IVS/IVD入門』(田丸健三郎、小林龍生)を読んでいたら、いくつか気になる点があったので、まとめてみることにした。とりあえず、第4章(37ページ分)だけ。時間と気力があれば、今後、他も追加していくかも*1。組版上の突っ込みは(ひどい例以外は)省いた*2。 p.103 ISO/IEC 8859は《中略》パート16まで定義されています(パート15は破棄)。 破棄されたのはパート12。 p.104 「ISO-10646」の文字集合 「ISO-10646」→「ISO/IEC 10646」。 たとえば、1面19区75点を符号位置とする文字をシフトJISで8ビット符号化した場合0x8A6Bとなる文字を例に見てみましょう。この文字は、葛飾区の「葛」という文字ですが 「葛」はシフトJISで「0x8A6B」ではなく「0x8A8B」。 p.106 「U+000000」→「U+0000」(U

    『Unicode IVS/IVD入門』へのツッコミ・第4章編 - 帰ってきた💫Unicode刑事〔デカ〕リターンズ
  • 文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです

    文字情報基盤導入パンフレット[pdf 0.2MB] 文字情報基盤導入ガイド[pdf 0.6MB] 文字情報基盤導入テクニカルスタディ[pdf 0.2MB] 縮退マップ利用ガイド[pdf 0.6MB] 文字情報基盤整備事業について 文字情報基盤整備事業は、平成22年度電子経済産業省推進費(文字情報基盤構築に関する研究開発事業) によりスタートした、行政で用いられる人名漢字等約6万文字の漢字を整備するプロジェクトです。詳しくはこちらから

  • Windows8のUnicode IVS対応で出てきそうな影響 | 電書魂

    先日、大手町のマイクロソフトテクノロジーセンターで開催されたセミナー「Windows 8 で変わる文字 – 異体字と Unicode IVS~ 情報システムにおける日語処理 ~」に参加してきました。また、その後JEPAで開催された「Plat14 Unicode IVS/IVD入門「Unicode IVS/IVD入門」刊行記念セミナー」にも参加させていただき、MicrosoftとしてのUnicode IVS普及への姿勢が少し見えてきた感はありますので、印刷/電子書籍の業界に実際に近々出てきそうな影響についてちょっと書いてみたいと思います。なお、Microsoftのセミナーに関しては「ちくちく日記」さんにレポートが上がっておりますので、そちらも合わせてご覧ください。「Unicode IVS/IVD入門」につきましては、「イジハピ!」さんのエントリが参考になります。 Unicode IVSは「

  • スマートフォンと文字コード

    1. はじめに 内閣府によれば,2012年3月時点における携帯電話の世帯普及率はじつに94.5%にのぼる[1].携帯電話はほとんど全ての国民が1台ずつ持つ,他に例を見ない製品に育った.その中で近年台頭著しいのがスマートフォンである. コムスコア社の調査によると,今年6月時点におけるスマートフォンユーザは全携帯電話ユーザの23.5%であり,この数字は前年同月から43%の増加にあたる[2].つまり,最近になって普及率が急カーブで上昇している.こうした傾向は出荷台数を見るとより顕著になる.MM総研によると,今年4月~9月の国内携帯電話端末の総出荷台数に占めるスマートフォンの比率は69.4%にのぼる[3]. さて,スマートフォンは不特定多数との情報交換を目的とするものだ.したがって文字コードの実装は,重要なポイントとなる.では,その実態はどんなものか,いささか調べた結果をお伝えしたい. 2. レパ

  • 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の日記
  • シフトJIS / EUC-JPとUnicodeとの妥当な変換表: Netsphere Laboratories

    2004.10.17 新規作成。2004.12.19 加筆。2005.04.02加筆。 最近、コンピュータで扱う文字列の文字コードがUnicodeでなければならない場面が増えてきた。UnicodeとシフトJIS、EUC-JPを変換する機会が多い。この変換は変換表で行うが、変換表が実際的なものでなければ、文字化けが発生することになる。 おかしな変換表は、これまでは、特にLinuxなどの上で動作するオープンソースソフトウェアで多く見られた。おそらく規格原理主義者が多かったためだろう。そもそも、規格どおりに変換表を作ると、実用的な変換表にはならない。しかし、最近ではまともな変換表を実装しているものも増えてきて、うまく選ぶだけでいいようになってきている。 変換表の違いをまとめたページはよく見かけるが、実際にどのような条件を満たして変換するものを選べばいいか不明なので、まとめてみた。 変換表に求めら

  • eucJP-ms

    TOG/JVC (オープン・グループ / 日ベンダ協議会) CDE/Motif 技術検討 WG が定めたコードセット名です。UI-OSF共通日語EUC にユーザー定義文字とIBM拡張文字、NEC特殊文字を追加した 日語EUC (eucJP-open) と Unicode (UCS) との間のコード変換規則に Microsoft Windows NT 3.51 の式の変換規則を用いる場合に、このコードセット名を用います。 Unicode 経由で Windows-31J で使用できる全文字 (コードポイント) の相互変換が可能となるように変換規則が定められています。 変換規則 eucJP-ms の変換規則の概要は次の通りです。 EUC コードセット0 (ASCII) ASCII (ISO/IEC 646 IRV) とみなして Unicode に変換する。 EUC コードセット1 (JIS

  • character-sets

    Last Updated 2022-07-14 Available Formats XML HTML Plain text Registry included below Character Sets Registration Procedure(s) Expert Review Expert(s) Martin Dürst Reference [RFC2978] Note These are the official names for character sets that may be used in the Internet and may be referred to in Internet documentation. These names are expressed in ANSI_X3.4-1968 which is commonly called US-ASCII or

  • 小形克宏の「文字の海、ビットの舟」――文字コードが私たちに問いかけるもの

    小形克宏の「文字の海、ビットの舟」 ―― 文字コードが私たちに問いかけるもの [Reported by 小形克宏] 第1部 2000JISがやってきた 第1回 2000JISとはなんだ? (2000年1月19日) 第2回 2000JISの原案はなぜ修整されたか? (2000年1月26日)加筆修正 2000年2月22日 第3回 前回までの訂正と補遺 (2000年2月2日)加筆修正 2000年2月22日 第4回 JCS委員長、芝野耕司の反論(前編) (2000年2月9日)加筆修正 2000年2月12日 第5回 JCS委員長、芝野耕司の反論(後編) (2000年2月16日)加筆修正 2000年2月22日 特別編 MacOS Xの新フォントと2000JISの関係 (2000年2月23日) 特別編2 ISO/IEC 10646で却下された(?)JIS X 0213の新漢字一覧表 (2000年3月8日

  • IBM Unicode と MS932 の文字コードの違いによって起こる文字コード非互換の問題について

    Lotus Domino サーバーを R5 から Lotus Domino 6.x 以降にアップグレード後、以下の EBCDIC の文字が正しく変換されません(カッコ内はMS932(Shift-JIS)での文字コードです)。 (0x817C) (0x8160) (0x8161) (0x815C) (0xFA55) これは IBM i / z プラットフォーム等で使用されているデータを Windows プラットフォーム上のクライアントやサーバーに転送したり、アプリケーションで処理する部分や Lotus Notes クライアントでこれらの文字コードを表示する際などに発生します。 この問題は、問題報告番号 HNAA6JW7SJ / YSAI6Z4BGQ として Lotus Quality Engineering に報告され、Lotus Domino 8.5.2 で修正されています。 Lotus

  • JIS-Unicode間の変換表の選択について

    背景 多言語対応アプリケーションでは、文字列を扱う場合に内部でUnicodeを用いることが一般的に行われています。しかし、ファイルとして保存する場合や、ネットワークを通す場合には、ISO-2022-JP・EUC-JP・シフトJISが使われるため、入出力の段階で変換する必要があります。特定のプラットフォームを対象としたアプリケーションの場合は、プラットフォームの変換モジュールを利用できますが、クロスプラットフォームのアプリケーションのために、言語処理系やアプリケーション自身が、Unicodeと既存のエンコーディングとの変換モジュールを持つことが多くなっています。 シフトJISなどのエンコーディングは、 JIS X 0201 や JIS X 0208 などの文字集合を元にしていますが、これらの文字集合とUnicodeとの対応は、規格として厳密には定まっていないため、実装ごとに変換表が違っていま