タグ

Unicodeに関するt-murachiのブックマーク (46)

  • 漢字のようで漢字でないUnicodeの「康熙部首」と「CJK部首補助」|TechRacho by BPS株式会社

    きっかけ 以下のツイートで「埼玉埼⽟問題」と康煕部首を知りました。 「埼玉」と「埼⽟」の話。unicodedata.normalize('NFKC', '「埼玉」と「埼⽟」') でいけそう https://t.co/kte0sxDvZT — Haruhiko Okumura (@h_okumura) July 11, 2020 康煕部首とは ⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕ KangXi Radica

    漢字のようで漢字でないUnicodeの「康熙部首」と「CJK部首補助」|TechRacho by BPS株式会社
    t-murachi
    t-murachi 2020/10/08
    検出修正スクリプトもまま埋め込みだとかえって何やってるか判らんのでコード番号で書いたほうがむしろ親切な気もする(´・ω・`)
  • trimやstripが全角スペースをトリミングしない理由で盛り上がったのでまとめてみた - Qiita

    はじめに RubyのString#stripが全角スペースをトリミングしてくれないことにこの間初めて気づきました。 そこでフィヨルドブートキャンプのSlackで質問してみたところ、結構盛り上がったので記事にまとめます。 編 自分で調べたこと まず自力で調査したことをまとめます。 Javaのtrimメソッド Javaのtrimのロジックは「\u0020(半角スペース)の文字コードより大きいか小さいか」が判断基準になっています。 ただ、それが他の言語の場合同様のロジックで実装されているのかまではわかりませんでした。 RubyのString#strip(Cのコード) 前後のオフセット値を算出してそれを利用して前後のスペースのトリミングを実現しています。 ただ、C力が圧倒的に足りないのでどういうロジックでそのオフセット値を算出しているかまではわかりませんでした。 追記 RubyRuby実装、R

    trimやstripが全角スペースをトリミングしない理由で盛り上がったのでまとめてみた - Qiita
    t-murachi
    t-murachi 2019/06/20
    そもrubyよりUnicodeの方が後発なんですよね… やるとしたら他の言語でもそうであるようにUnicode対応に伴う国際化対応の一環での機能追加でしょうし、そのために既存の関数の挙動を変えることはしないでしょ(´・ω・`)
  • Unicodeの基本から解説。新元号「令和」の「令」がUnicodeに2つある理由 – cod-log

    はじめに 新元号発表 日4/1お昼ごろ、新元号が「令和」と発表されました。 さて、この新元号に含まれる「令」という文字ですが、これは「CJK互換漢字」といわれるUnicodeにおける特定のグループに含まれる文字のひとつであり、Unicodeに同一の「令」という文字が、ふたつ含まれているのです。 記事は、 Unicodeについての基知識 CJK互換文字とは何か? 「令」がなぜ、CJK互換文字に含まれるのか? アプリケーション開発への影響 について調査してまとめたものです。 Unicodeについて CJK互換漢字について理解するためには、まずUnicodeの理念およびUnicodeのラウンドトリップ変換互換性の原則についてを理解する必要があります。 Unicodeとは Unicode(ユニコード)は、16ビットの整数値で表した符号位置と、文字とを対応付ける規格のことです。 「符号位置」と

    Unicodeの基本から解説。新元号「令和」の「令」がUnicodeに2つある理由 – cod-log
    t-murachi
    t-murachi 2019/04/02
    既存の問題が顕在化しただけ。少なくとも帳票周りで気を揉む必要はない。ユーザー入力から年号を拾う必要がある場合は注意が必要。
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
    t-murachi
    t-murachi 2018/12/23
    低レベル言語であろうとする意識と、現実のOSが提供するAPI (特にファイル周り) との兼ね合いとのせめぎあいって側面も…(´・ω・`)
  • PS4で、受け取るだけで本体がクラッシュさせられてしまう凶悪なメッセージが蔓延中。解決されるまで対処推奨 | AUTOMATON

    PlayStation 4にて、特定のメッセージを受け取った際に体がクラッシュし、アカウントが使用不可能になるという不具合が見つかった。海外コミュニティRedditの投稿によれば、特殊文字が含まれたPSNメッセージを”受け取る”だけでPlayStation 4体が機能不全に陥ってしてしまうとのことだ。つまり、そのメッセージを開いていなくても、受け取った時点でアウトとなる。Kotakuなど海外メディアも報じているほか、すでに国内のSNSなどでも被害報告があがっている。 また、モバイルアプリから削除するのが解決策だと一部では報告されているが、一方で一度そのメッセージを受け取ってしまうとモバイルアプリからメッセージを削除しても効果は見られないとの報告もあがっている。クラッシュ後の症状としては、PlayStation 4が突如フリーズし、連続で再起動するなど不自然な挙動を繰り返す。結果的にその

    PS4で、受け取るだけで本体がクラッシュさせられてしまう凶悪なメッセージが蔓延中。解決されるまで対処推奨 | AUTOMATON
    t-murachi
    t-murachi 2018/10/15
    関係ないけどシステムに業務を合わせるのが正しいのであれば、自然言語もまたシステムに合わせて文化を捨てるべきなのかもね… かつて日本語が右から左への横書きを捨てたように(´・ω・`)
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    t-murachi
    t-murachi 2018/08/07
    サマータイムの項は政権の人たちに100回ぐらい斉唱していただきたく…(´・ω・`) しかしよくまとまっておる。'/' がバックスラッシュだったり円記号だったりする件もあるといいかも…
  • ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ

    とある会員制掲示板からの文書の流出に困った運営者が、ユニコードの見えない文字「ゼロ幅文字(Zero-Width characters)」を使って流出させたユーザーを特定した、という話が出ていました。 数年前の話、Tom さんが所属していた競技ビデオゲームのチームでは、ログインが必要なプライベートの掲示板を使って連絡していました。その掲示板に書かれた秘密情報や戦術に関する重大アナウンスなどがしばしば掲示板外のウェブにコピペされ、チームにとって大きな問題となっていたそうです。 外部ユーザーの攻撃で中身が漏れたというよりは、メンバーの誰かがコピーしているのでは、と考えた Tom さんは、当時気になっていたユニコードのゼロ幅文字を使ったトリックを仕掛けたそうです。 ユーザーを特定する情報を、見えない文字に変換して埋め込む ログイン中のログインユーザーのユーザーIDを、一定のルールによってゼロ幅文字

    ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ
    t-murachi
    t-murachi 2018/04/09
    Unicodeはいろいろトリックがあってpunicodeでセキュリティリスクとされたりnyで拡張子偽装が流行ったり過去にもいろいろあったよね(´・ω・`)
  • 『Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社』へのコメント

    学び Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社

    『Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社』へのコメント
    t-murachi
    t-murachi 2016/10/14
    「ぶっちゃけ普通にコード書いてる分には意識しないで良い話」いやいやいやいや、境界は文字? オクテット? サイズは文字数? オクテット数? 正規表現の\wは[A-Za-z_]相当? 国籍問わず文字と呼べるもの全般? 大違いですよね??
  • Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底をらったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し

    Rubyの内部文字コードはUTF-8ではない...だと...?!|TechRacho by BPS株式会社
    t-murachi
    t-murachi 2016/10/14
    「保存」という言葉の使い方がすごく引っかかる… 「保持」とかじゃ駄目なん? (´・ω・`)
  • 全角半角混在の文章で 1 行に半角何文字分あるか調べる方法

    「ソースコードは 1 行あたり 80 文字以内」とか「コミットログは横幅 72 文字以内」とか、文字数に関するルールはいろいろある。 ルールを徹底するには機械的に判定したい。と思って、簡単なスクリプトを書こうとした瞬間、意外と「1 行あたりの文字数」をカウントするのが難しいことに気付いた。 たとえば、「あA」は「全角 1 文字+半角 1 文字」なので半角 3 文字分としてカウントしたい。 しかし、UTF-8 の世界では「あA」の文字長は 2 だし、バイト数は 4 (あ=0xE38182、a=0x41) である。 EUC-JP や Shift-JIS の時代なら、単純に「あA」は 3 バイトなので「半角 3 つ分」とすぐ分かったのだけども… (逆に文字長を調べるのが面倒だった)。 はて、どうするか? というのがこの記事でいいたいこと。 East Asian Width を見よ いろいろとググ

    全角半角混在の文章で 1 行に半角何文字分あるか調べる方法
    t-murachi
    t-murachi 2014/03/14
    East Asian Width か…。
  • この「邉」を作ったのは誰だぁ!! - 帰ってきた💫Unicode刑事〔デカ〕リターンズ

    『Unicode IVS/IVD入門』(田丸健三郎、小林龍生)のなかで、目玉がWindows 8のIVS対応を紹介している第2章だとするなら、背骨といえるのが、IVSという枠組み自体について解説している第5章だよね。 たとえがしっくりきませんが、こだわらずに先に進みましょう。 その第5章のなかでも、IVSの基中の基をわずか1行に凝縮して視覚化しているのが、図5-7だ。 はいはい。 で、今日は図5-7に突っ込んでみようと。 もちろん、突っ込みますよー! あのさ、そういうテンションいらないから。この図なんだけど、どう? んー、解説抜きで見せられても、ちょっと難しいですね。 いや、当は難しくないんだよ。「漢字に異体字セレクタを付けるとグリフを指定できます」って言ってるだけの図なんだから。 この真ん中の「E010B」が右では「E0110」に変化してるのは、どういう意味なんですか? 誤植だね。

    この「邉」を作ったのは誰だぁ!! - 帰ってきた💫Unicode刑事〔デカ〕リターンズ
    t-murachi
    t-murachi 2013/04/24
    そも Unicode の目指すゴールが世界各国の文化の実態に即してない。字体が重要な場面では必ずしも検索できる必要はないし、何でも文字コードで解決という考え方自体に無理があると思う。
  • The UTF-8-Everywhere Manifesto

    As can be seen, UTF-16 takes about 50% more space than UTF-8 on real data, it only saves 20% for dense Asian text, and hardly competes with general purpose compression algorithms. The Chinese translation of this manifesto takes 58.8 KiB in UTF-16, and only 51.7 KiB in UTF-8. Text operations on encoded strings The popular text-based data formats (e.g. CSV, XML, HTML, JSON, RTF and source codes of c

    t-murachi
    t-murachi 2012/05/01
    _UNICODE 使わずに Unicode版Win32 API を直接呼べとか内部文字列は UTF-8 にして booster::nowide の convert() とやらを使えとか。…誰か UTF-8 を理解している regular expression ライブラリ作ってくれないかなぁ。
  • GNU/Linuxの方がWindowsより日本語サポートが優れている

    今や、GNU/Linuxの方が不自由なWindowsより日語サポートが優れている。これは純然たる事実である。 私は、UIが日語化の質を論じているのではない。私はUIの言語を英語にしているので、UIの日語の質についてはわからない。ただ、2012年となった今では、GNU/Linux/Xの環境の方が、圧倒的に日語を扱う環境が優れていると考えているのだ。 まず、現行のまともなディストリは、文字エンコードをデフォルトでUTF-8にしている。このため、不自由なWindowsにおける、カオスな大量のマルチバイト文字コード混在環境の問題は存在しない。確かに、不自由なWindowsのネイティブの文字エンコードはUTF-16だが、下位互換性を保証するために、既存のマルチバイト文字をすべて継続してサポートしているために、未だにカオスな状況になっている。多くのプログラムは、嘆かわしいことに、いまだにANS

    t-murachi
    t-murachi 2012/04/05
    確かに、 ANSI 版 Win32 の問題は、結構根深い気がする。とりあえず MS-VS 上のテキストを適当なテキストエディタにコピペすると文字が化けるのどーにかして欲しい (泣
  • gist:2212589

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    gist:2212589
    t-murachi
    t-murachi 2012/03/28
    Unicode が日本語で哲学を語るとか…
  • clang 3.1(trunk) に Universal character names in literals が実装された - C++でゲームプログラミング

    user-defined literals の直後に追加されたみたいで気が付きませんでした。 文字列の中に直接文字コードを記述することが出来ます。 C++11 implementation status GIT mirror [ソース] #include <string> #include <cassert> int main(){ char16_t const* s = u"\u307b\u3080ほむ"; assert(s == std::u16string(u"ほむほむ")); return 0; } clang の進化が止まらない。 [コンパイラ] clang++ (LLVM) 3.1 20120311(trunk) [参照] http://d.hatena.ne.jp/faith_and_brave/20081009/1223548246 http://www.yourname.

    clang 3.1(trunk) に Universal character names in literals が実装された - C++でゲームプログラミング
    t-murachi
    t-murachi 2012/03/11
    やっとキタコレ(;_;)/
  • はらぺこ日誌» ブログアーカイブ » C++11 で Unicode プログラミングのススメ

    文字列リテラルではさらに u8 という接頭子も使えます。 u8"Copyright \u00a9 2011 Harapeko, Inc." // \u00a9 は UTF-8 のオクテット列 [C2 A9] に変換される u"\U0002000bは「丈」の字にクリソツ" // \U0002000b は UTF-16 の該当するサロゲートペアに変換される…ハズ 対応関係の表は、…面倒くさいからもういいか。 あとさらっと流しちゃいましたが、 Unicode 用のエスケープ文字も追加されました。\uNNNN は 16bits の、 \UNNNNNNNN は 32bits の UCS を表現できます。上記の例のように、適切な文字列リテラル内で使用すれば、対応する文字セットの数値列に適宜変換されるはずです。この辺の説明はドラフトの 2.3 にありますが、以下の説明の通り、あくまで UCS の文字値を

  • 絵文字だけで書いたブログ Narrratives In Emoji | 秋元@サイボウズラボ・プログラマー・ブログ

    ツイッターのほうで、iPhone上での積極的なサポートに伴って日のケータイから出てきたEmoji(絵文字)を使う人が増えてきている、というニューヨークタイムズの記事を紹介しましたが、その記事中で面白いブログが紹介されていました。 Narratives In Emoji (絵文字でナレーション)というタイトルのこのブログ、iPhoneAndroidが対応したおかげで日以外でも広く使えるようになったEmojiを組み合わせて、映画のあらすじや時事のニュースなどを紹介しています。(なお、ブログ記事は、絵文字対応していない環境でも読めるように、全部画像化されてしまっています。) たとえばこれ、 映画「インディペンデンス・デイ」だそうです。なるほど! ではこれは? ニューヨークタイムズも、当にアメリカ人がみんな絵文字を使うようになるかどうかはまだわからないし、絵文字の中には日人じゃないと理解

    t-murachi
    t-murachi 2011/12/12
    「絵文字の中には日本人じゃないと理解しにくいものもあり、アメリカ人には必要そうなもので無い絵文字も多い」 in Unicode... ('A`)
  • はらぺこ日誌» ブログアーカイブ » Boost.Regex の ICU 拡張と char32_t は相性がいいかも?

    なんとなく Virtual Box から利用している Ubuntu のアップグレードなどをして、そこからなんとなく「やっぱり Long Time Release 版の Ubuntu もテスト環境に持っておきたいよなぁ」などと思いつつ Virtual Box ディスクイメージを追加でこさえて、 Boost ライブラリのセットアップなどもしつつ動作チェックも兼ねて昔書いた記事なんぞを掘り起こしておりましたら、そこに書かれた内容に関連して、そういえば Boost.Regex も ICU ライブラリと組み合わせれば Unicode に対応できたはずだよなぁなどということが気になりだしてしまいまして、いろいろ試しているうちに、以下のようなサンプルコードが問題なく動作してしまうことを発見してしまったのでメモしておこうかと思った次第なのであります。ああ、なんだかこちらのブログも口調が個人ブログや普段の

    t-murachi
    t-murachi 2011/09/21
    しょーもない脇道に逸れてみますた…。
  • Twitterで見かけるハミ出した顔文字の正体 - RyoAnna

    少し前からTwitterで見かけるようになった、上下に飛び出す変な顔文字。 気持ち悪いのであまり関わらないようにしていたのだが、この顔文字の謎が明らかになったのでお伝えしたい。 いつものようにiPhoneのApp Storeをぶらぶらしていた時のこと。 Unicoder Lite (App Store)というアプリが気になりダウンロードした。 起動するとなにやら見慣れた文字が。 顔文字でよく使われるギリシャ文字やキリル文字だ。 しばらく眺めているとこんな符号が。 合成用区分符号 これが上と下の行にはみ出す顔文字の正体だった。 ためしに作ってみよう。 ベースとなる顔文字を置く。 左目に合成用区分符号を入れる。 続いて右目に。 見事にはみ出す。 Unicode(ユニコード)とは、世界中のコンピュータの文字を符号化したもの。その "U+0300-036F" に配置されているダイアクリティカルマー

    Twitterで見かけるハミ出した顔文字の正体 - RyoAnna
    t-murachi
    t-murachi 2011/06/08
    こんなもん使われても Twit ユーザーの俺様的にはよゆーでスルーだがな。
  • #4 (テキストファイルから読み込んだ文字列を wchar_t 配列と Unicode で扱う方法を調査する。) – otoco

    具体的な調査内容は以下の通り。 iconv について調べる。 ライブラリとしての iconv は何をしてくれるのか? iostream について調べる。 通常のテキストファイルを wifstream で読み込んだ場合の動作について。 otoco ではテキストの内部表現はすべて wchar_t 型の Unicode で扱う。 iconv が Unicode 値を扱うものではなかった場合、 Unicode 値を扱える別のライブラリとの併用を考える必要もある。

    t-murachi
    t-murachi 2011/02/27
    id:Shinnya さめ: 一応こちら http://bit.ly/dEOXlE もご参照頂いておいた方が良いかもしれません… あとブログ記事では http://bit.ly/gquykkhttp://bit.ly/f7GDwa も…。