本記事は 【Advent Calendar2023】 17日目の記事です。 🎄 16日目 ▶▶ 本記事 ▶▶ 18日目 🎅 こんにちは。 2年目の草野です。年末が近づいてきましたね。 今回はAdvent Calendarの執筆に参加ということで、2023年の業務の中で印象深かったUnicodeについて少しお話したいと思います。 そもそもUnicodeとは サロゲートペア文字 突然ですが…… 異体字セレクタとの出会い 異体字セレクタって? 全く同じ意味を持つ文字、異体字 異体字セレクタの誕生 具体例 結局私の名字はどう書くの? おわりに そもそもUnicodeとは みなさんご存じの通り、Unicodeは文字を表すための国際的な標準規格の1つです。 一般的には [U+91CE] のように、16進数で表記されます。 常用文字は [U+0000] ~ [U+FFFF] の16進数4文字=2バ

TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くないUTF-8は神2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しましたUTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

電子メール、ネットワーク機器集中管理、異常検知、分散処理、クラウド基盤などのシステム開発に従事。古代Rubyist。 CLI や TUI なアプリケーションを使っていると、端末の画面が崩れてしまうことがよくあります。 たとえば、こんな TUI が、 環境によってはこんな感じで崩れます。 スクロールなどをしながらしばらく使っているとさらにどんどん崩れていきます。 こうなってしまった場合、とりあえず Ctrl-l で画面を再描画することで、大抵はなんとか読める程度にリセットできますので、ことあるごとに Ctrl-l を連打することになります。 ですが、どうしようもないケースもままあります。 例えば、私の場合は以下のようなシチュエーションで困ります。w3m でテーブルなどを表示するとレンダリングが崩れる less でログの閲覧の際に表示されるべき文字が表示されず見落としが発生する Wander

前回に引き続き、UTF-7によるクロスサイトスクリプティング(XSS)について説明していきます。 UTF-7によるXSSは、攻撃対象のコンテンツの文字エンコーディングが不明瞭な場合に、そのコンテンツを被害者のブラウザ(Internet Explorer)で開いたときに、そのコンテンツの文字エンコーディングがUTF-7であるとIEに誤認させ、「+ADw-script+AD4-」のようなUTF-7の文字列が有効なHTML要素として認識されるために発生します。 そして、「文字エンコーディングが不明瞭」な具体的な状況として、以下のような条件のいずれかに該当するということを前回説明しました。 レスポンスヘッダ、meta要素のどちらでもcharsetが指定されていない charsetにIEが解釈できないエンコーディング名が指定されている meta要素でcharsetを指定しているときに、meta要
最近(この1週間ほど)で LaTeX 周りで起きていることについて,声明を出しておきます。端的に言うと「pLaTeX,本格的にやばい」。 pLaTeX hyperreferror withpdfmanagement-testphase 今 LaTeX の世界で何が起きているのか,ざっと説明します。 ここ1年ほどの LaTeX は大きく変わっている 2020-02-02 以降,本家の LaTeX2e に多くの変更が入っています。2020 年の2回のリリースについては,Online.tex 2020 での私の講演資料「最近の LaTeX は〇〇」【PDF 直リンク】も参考になるでしょう。 LaTeX2e 2020-02-02: 新 NFSS 導入(シリーズとシェープの多軸化,ファミリ毎の実際のシリーズ値の設定,…),カーネルへの expl3 読込 LaTeX2e 2020-10-01: フ

こんにちは、技術開発室の滝澤です。 最近(2021年春)、Go言語でメールパーサーを書く機会があり、備忘録的な意味でも知見をまとめておこうかなと思い、この記事を書きました。 メールパーサーを書いていて考慮しないといけないことの一つは、文字エンコーディング(charset)が正しく指定されていないメールがときどきあることです。 MIME(Multipurpose Internet Mail Extensions)関連のインターネット標準であるRFCが公開された1990年代や世間一般にインターネットメールが利用され始めた2000年代初期ならともかくとして、2021年にもなってまだその点を考慮しないといけないのはなかなかつらいことです。 そのようなメールを取り扱うときには、文字エンコーディングの検出を行う必要があります。本記事ではその文字エンコーディングの検出方法について書いてみました。 なお、
美乳テーブルとは 「美乳テーブル」という物がある。 「EUC-JP の文章を Shift_JIS だと誤認識されない様に、EUC-JP 固有のバイト値を文章先頭付近に埋め込んでおく」という物。 具体的に、Shift_JIS には 0xFD と 0xFE が現れず、EUC-JP にはそれが現れるので、その値を含む文字コードを書いておこうという事で、その文字の集合に付いた名前。 “美” = 0xC8FE、“乳” = 0xC6FD。 各文字エンコーディングの事情 但し、これは EUC-JP での話。 一応、文章の先頭付近に日本語の文字を書いておくのは、他の文字エンコーディングでも認識のヒントにはなるけど。 逆に「Shift_JIS の文章を EUC-JP だと誤認識されない様にする」には、EUC-JP にはないバイト値の 0x80〜0xA0 を書けばいいんだろうけど、これは沢山ありそうだから、慎
文字コード再入門 ─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう! 文字コードには、どのような種類があり、それぞれどのような意味を持つのか、といった、文字コードの基本的な概念、従来の文字コードを紹介し、現在のUnicodeの構成を概説し、プログラミングにおいて注意すべき箇所をいくつか取り上げます。 ソフトウェア開発に携わる方の多くは、何らかの形で文字コードに触れることがあるでしょう。文字や記号をコンピュータ上でデータとして扱うには、文字コードの知識が必要不可欠です。本稿では、書籍『プログラマのための文字コード技術入門』の著者である矢野啓介さんが、知っておきたい基礎知識を分かりやすく解説します。 文字コードとは? Unicode以前の文字コード Unicodeとその主な符号化形式 UTF-16 UTF-32UTF-8 Webで文字コードを指定する仕組み

理由 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能 全文vim-jp.slack.com の #random から。 heavenshell [10:08 AM] TouchBar MBP にしたら強制的に C-[ になるので、オススメです!ようやく矯正できた。mattn [10:09 AM] 人間の方が最適化されている yoshitia [10:12 AM] Escが物理的にない状況用にデフォルトでCtrl-[ 用意してるのすごいmattn [10:14 AM] いや、用意した訳ではないです。 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能なのです。 なので `[` つまり 0x5b は 0x1b になる。 0x1b = ESC 同様に CTRL-H は H が 0x48 なので 0x
おさらい。 ∥ Unicode正規化 -Wikipedia 正規化形式 NFC: Normalization Form Canonical Compression | 文字に何がくっついていようと、組み合わせて作られた文字であろうと、「一文字」は「一文字」じゃ。圧縮形式。Linux のファイルシステムやWindows の NTFS などが普通に使っている。 NFD: Normalization Form Canonical Decompression | 濁点・半濁点を、あるいはウムラウト等のダイアクリティカルマークを、本体の文字とは分離してエンコードした形式。OS X の HFS+ が、これを採用してくれちゃっている。 基本としては、OS X 上に置かれるファイルは NFD であってくれて、Linux やWindows 上にあるファイルは NFC であってくれると平和で助かる。 追

ざっくり言うと、「文字コードで表現できないので、独自に拡張した文字」のこと。 いつ使うのよ 多くは人名・地名でのマイナー漢字。 あと「㌢㍍」よろしく独自記号を使いたいなんて場合にも使われるけど、これは今回の話の対象外です。 人名における外字の具体例 マイナー漢字 漢字はJISの規格で第1~第4水準に分類されます。 このうち第3水準、第4水準の漢字はShift_JISの文字コードで定義されていないものが多い。 そういった漢字を使用する際に、外字として登録しているケース。 ※ 実際に遭遇した例としては、「㐂」とか「昱」とか。 ※ 「第2水準だけど、その文字が見つからないから外字で登録した」ってケースも割とあります。 あと別の例として、中国語でのみ使われる漢字なんてのも。 異体字 有名なのは「高」に対する「髙(はしごだか)」みたいな。 これはかなり種類が多く、例えば「辺」の異体字だと と収拾つか

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

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

Jun 3, 2015 先日,久々にあるWebサービスにログインしようとすると一向にログインできない. 何故だ. 普段使っているパスワードマネージャから入力されたユーザ名とパスワードを何度も確認する. 間違いは見当たらない. さらにパスワードを再発行しようにも,再発行の案内メールが届かない・・・・. 何故だ. サポートに電話 サポートに電話すると手で再度,入力してくれと頼まれる. すると・・・・あ,再発行のメールが届いた!!!! え・・・なんで? サポートのオペレータになんか私のミスのようですと,謝罪し,再発行の手続きに進む前に,何故,手入力だと再発行の手続きメールが送信されたのかを検証するため,再度,パスワードマネージャから入力されたテキストと,手入力されたテキストを見返してみる. 「・・・・・・・・・・・」 まったく同じだ. 一文字も間違いはない. データに差違はない. このテキストフ
docomoの対話APIについてです. 私はこの素晴らしいAPIのおかげで, 現在製作中のちょまどbot(@chomado_bot)に対話機能を付けることが出来, 毎日楽しんでいます! でも, 文字コードを(仕様に書いてある)UTF-8 にしても, Shift-JIS で収まらないものを与えると 400 Bad Request でしぬようなので, ここに書いておきます.(2015/1/28現在) 問題が起こった時, 私は自力で考えても全然原因が分からなくて, 詳しい人に教えていただくまでずっと詰んでいたので, 他の人の役に立てばいいなという思いで, ここに, 記しておきます. 【重要 後記2015/3/1】(注) このバグは2015/2/24のdocomo対話APIのアップデートで修正されたっぽいです. でも記念にこの記事は残しておきます. 目次 まとめ/結論 具体的な修正例 何があった

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く