境 真良@iU/GLOCOM/METI(あーりん推し/芸能人スキャンダル要らない) @sakaima 「令和」ですが、「令」はUnicode「U+4EE4」、UTF-8だと「E4 BB A4」、シフトJISだと「97DF」、また「和」はUnicode「U+548C」、UTF-8で「E5 92 8C」、シフトJISだと「9861」です。とりあえずご参考まで。 #さてお仕事ですよ 2019-04-01 11:46:49
こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底を食らったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し
今回は、文字コードに関連するセキュリティの話題では古参ともいえるUTF-8の冗長なエンコードというテーマについて紹介します。 UTF-8とは UTF-8は、各文字を1~4バイトの可変長で表現するUnicodeの符号化方式のひとつです。 U+0000からU+007Fの範囲の文字を0x00から0x7Fの1バイトで表現しているため、US-ASCIIと互換性がある、バイト列の途中からでも文字の先頭バイトを簡単に検出できる、多バイト文字の途中に0x00や0x5C(\)、0x2F(/)などが現れない、などの特徴があります。 UTF-8での文字のビットパターンは表1のようになります。 表1 UTF-8でのビットパターン
C#は、識別子に使える文字をUnicodeのカテゴリーで判別しているわけですが。「○○Letter」カテゴリーなものはおおむね識別子に使えます。 𩸽(ほっけ) Letterなのに使わしてもらえないかわいそうな文字もあるわけですが。 𠮷(U+20BB7、下の線の方が長い吉)とか、𠮟(U+ 20B9F、口偏に七の「しかる」)とか、𩸽(U+29E3D、魚の「ほっけ」)とか。いわゆる、サロゲートペア文字。char型が16ビットのC#とかJavaでは結構はまるやつ。 現状のC#は、サロゲートペアの識別子を一切認めていません。Roslynの実装でもそう。 ということで、こいつを見てくれ。 http://ideone.com/jSRfqm using System; class Program { static void Main() { var ᛊ = 2; // ルーン文字識別子。Other
+15 ここで先ほどメモした「0159」という数値が役に立ちます。 まず、上3桁と下1桁に分割し、上3桁には末尾に0を、下3桁には頭に+をつけます。 <例> 「0159」→「0150」と「+9」という風に分割します。 そこで上の表の一番左の列の "0150" と書かれてあるところから右にたどっていき、一番上の行の "+9" と書かれているところから下にたどっていった場合に交わる場所に ř という文字を見つけることが出来ます。 そこで、今度は左から2列目と上から2行目に書いてある数値が登場します。 これは、一番左の列は一番上の行に書いてある「16進数の数字」を「10進数の数字」に変換したものです。 これによると、"0150" は 10進数で "336"、"+9" は 10進数で そのまま "+9" と変換できます。 この2数を足した値、"345" が ř という文字の10進数での文字コードに
表題のような感じなのですが、これまで理解が曖昧だったUnicodeとか何とかが今までよりわかったのでメモ。 尚、こちらのサイトを非常に参考にさせていただきました。 Unicodeについて コードポイントとは 文字コードとは 今日覚えた単語その一。Unicodeに限らず、文字をコンピュータ上で表現する際、1つの文字に1つの数値を対応させるわけですが、この文字に対応する数値をコードポイントというそう。 いままでASCIIコードとか呼んでました。 そして、文字と数値の割り当てのルールのことを「文字コード」と言うんだそうです。 Unicodeとは から UTF-XXは何が違うんじゃ という話へ Unicode誕生 文字コードが乱立したため、あるコードポイントで表現される文字が、文字コードによって、てんでばらばらという状況に。 ややこしいから、ひとつの統一した文字コードをつくろう! ということで「U
Unicode 'Other, Format'カテゴリ (Cf) コード 意味 バージョン コメント U+200B ZERO WIDTH SPACE Unicode 1.1.0 幅の無い空白 U+200C ZERO WIDTH NON-JOINER Unicode 1.1.0 U+200D ZERO WIDTH JOINER Unicode 1.1.0 U+FEFF ZERO WIDTH NO-BREAK SPACE Unicode 1.1.0 幅の無い改行しない空白 Unicode 'Separator, Line'カテゴリ (Zl) コード 意味 バージョン コメント U+2028 Line Separator Unicode 1.1.0 LS Unicode 'Separator, Paragraph'カテゴリ (Zp) コード 意味 バージョン コメント U+2029 Paragr
Java での空白文字 Java で空白とみなされる文字は?と聞かれると、意外とよく分からない。 Character クラスの static メソッドに isSpaceChar() と isWhitespace() とが定義されているけど、JavaDoc を読んでも全然分からない。 ということで、実際に Character#isSpaceChar(), Character#isWhitespace() を実行してみました。 引数として渡したのは 0 〜 0xffff (65535) です。 下表は SC : isSpaceChar() の返り値が true なら「○」 WS : isWhitespace() の返り値が true なら「○」 としてます。 Unicode 文字 SC WS Unicode 文字 SC WS Unicode 文字 SC WS \u0009 '\t' ○ \u0
Unicode エスケープシーケンス(\uXXXX)形式 に変換するもの ついでにHTMLの数字文字参照、文字実体参照にも対応させてみた。 メモ Unicode の UTF-8 エンコーディングは ASCII 文字と互換性があります。 Unicode 文字の U+0020 から U+007E までは ASCII 文字の 0x20 から 0x7E と同等です。 ASCII はラテンアルファベットをサポートしており、7 ビット文字セットを使用します。 UTF-8 は各文字について 1 オクテットから 4 オクテットを使用します。 (「オクテット」は 1 バイト、すなわち 8 ビット)。 \uXXXX形式 は多分、java、javascriptで使用可能。 数値文字参照(文字参照):数値文字参照は、10進数もしくは16進数によって文書文字集合における該当文字を指定する方法 例: 「©
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く