自分の頭を整理するために書いておく。正しいかは知らない。 まず前提として、Javaの内部表現としての「文字」は16ビット長のUTF-16ということがある。そうすると、普通に長さを取得すると、UTF-16のサロゲートペアで表される文字は2文字と扱われる。 また、文字には合成済み文字という話がある。「か」の後に濁点を結合することで、「が」を表現するみたいなやつ。 これらから、どこまで考慮して文字列の長さを取得するかでやり方が違う。 UTF-16のサロゲートペアを考慮しない UTF-16のサロゲートペアを考慮する 合成済み文字を考慮する 以下試したサンプルコード。 importjava.text.BreakIterator; public class UnicodeCharSample { public static void main(String[] args) { // 𪛀あが St

Tables and lists appear here. To get started, either: select a Unicodeblock or character range using the controls above, add characters, code points ortext to the Search field and click on one of Hex, Dec, Characters orText, or paste sometext into thetext area and hit the button to list the characters. Clicking/tapping on characters in a table or list displays detailed information for them in

寒くなってきた今日このごろ、おでんが食べたくなったらUnicodeのU+1F362がある。 しかしU+1F362には大きな間違いがある。 それはUnicode Character Code ChartsのMiscellaneous Symbols and Pictographsに載っている。 seafood on skewer、日本語にすると「串に刺さったシーフード」である。 確実に僕の知っているおでんの定義じゃない。 念の為、「seafood on skewer」で画像検索してみる。 やっぱり僕の知らないおでんだった。 おまけ1 おでんの定義、ドラフト時には更によくわからなく、SEAFOOD CASSEROLE (TemporaryNotes: seafood hotchpotch, oden)、日本語に訳すと「シーフード鍋料理(シーフードの鍋、おでん)」である。 SEAFOOD CA
携帯電話やスマートフォンなどで広く使われている絵文字は、その代表的な字形がUnicode規格で標準化されているが、それをカラー化したOpenTypeのカラーフォントも普及しつつある。カラーフォントは携帯電話やiOS、OS X、Androidなどすでにさまざまなプラットフォームで利用できるが、Windows 8.1でもカラーフォントが利用できるようになった。 連載目次 「カラーフォント」とは、携帯電話やスマートフォン(スマホ)などでよく使われる色付きの「絵文字」をフォントセットとして定義したものである。従来から携帯電話やスマホ、インスタントメッセージングソフトウェアなどでは、感情やさまざまな物事、事柄などを表すために顔文字やエモティコン(感情を表すアイコン)などが使われているが、これらを1つの記号(アイコン)にしたものが絵文字である。代表的な絵文字は文字コードとして標準規格化されているが、そ

Vim Advent Calendar 2013の174日目の記事となります。 さて今回は、listcharsでドキッとした話です。 体験したのは去年の秋ぐらいの話ですが、掘り返します! set listcharts 例えば、vimrcに set list set listchars=tab:>-,trail:-,eol:$ こんな感じで書いておけば、 不可視文字を視覚化することができます。 字下げがタブなのか、スペースなのか、目で見て分かるのはとても便利です。 改行もどこで行われているのか、目で見て分かるのは便利です。 では次に、eol:$を、eol:↲と、いかにも改行っぽくしてみましょう。 set list set listchars=tab:>-,trail:-,eol:↲ ↲はやじるしで変換して出るような環境依存文字です。 一応表示はされました。 ですが、半分しか表示されてません。

As can be seen, UTF-16 takes about 50% more space thanUTF-8 on real data,it only saves 20% for dense Asiantext, 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 inUTF-8.Text operations on encoded strings The populartext-based data formats (e.g.CSV, XML,HTML, JSON, RTF and source codes of c
git最近、Git について勉強しています。Windows で Git をやるなら Cygwin と msysGit(Git forWindows) がメジャーなようです。Cygwin Git のいいとこ悪いとこCygwin はUTF-8 な日本語ファイル名にも対応しており、Cygwin の中で閉じて Git を使っている分には何不自由なく使えるのでお勧めです。ただし、次のような悲しいポイントがあります。 Cygwin 版 Git は、Windows 向けのGUI な Git ソフト(TortoiseGit や Git Extensions)との相性が悪いWindows のエディタやマージツールと連携しようとするとパスのポリシーが違うのでうまくいかないnkf を噛ませようとしても、Cygwin 用の nkf バイナリは公式配布されておらず、わざわざ Cygwin 上で make す
ねえねえ。これ何に見える? もしかして何かエッチなこと言わそうとしてます? いや、そういうのじゃないから。 宇宙人……でしょうね。 ふーん。宇宙人に見えるかあ。 宇宙人に見えるっていうより、宇宙人とでも言うしかないというか。 うん。これ、U+1F47E ALIEN MONSTERっていうUnicode絵文字の例示字形なんだけどね。ちょっとアレだよね。その元になった携帯キャリアの絵文字は、SoftBankのインベーダーのカニ星人*1。それから、auのタコ星人。 どっちもわかりやすい宇宙人ですよね。それがどうしてこんな不吉な脳みそ星人になっちゃったんですか? 話せば長いんだけどね。 じゃあ、またの機会に……。 ま、座れよ。ケータイの世界には、SoftBankにはアリ星人(「宇宙人」)とカニ星人(「ゲーム」)がいて、auにはタコ星人(「宇宙人」)とUFOがいる。 はい。ありますね、これ。 こいつ

Unicodeの文字が全角で表示されるか半角で表示されるかは東アジアの文字幅特性値がヒントを与えてくれるそうです。(日本語の場合は)この値がNa(狭)、N(中立)、H(半角)だと半角、W(広)、F(全角)、A(曖昧)だと全角として扱うことが推奨されているようです。Pythonではunicodedataモジュールを使うとこの特性値を取得できますが、JavaScriptにはそのような関数は見当たりません。ですが、Unicode Consortiumが、どの文字がどの東アジアの文字幅を持つかのデータファイルを公開しているので、そこから判定用のコードを機械的に生成できるはずです。 で、以下が実際に生成したコードです。データファイルに、データファイルに出現しない文字はNとなるとあるので、以下ではN以外(F、H、W、Na、A)についてのみチェックを行い、それ以外をNと判定するようにしています。 コメ
multiple-value-blog1 2011/11/20 でっかい括弧 この記事は、#:g1: でっかい括弧に引っ越しました!ラベル: paren mc さんの投稿 @ 23:10 0 件のコメント 0 件のコメント: コメントを投稿 登録 コメントの投稿 [Atom] << ホーム
はてなブログは、文字コードがEUC_JPであったはてなダイアリーとは違い、UTF-8(Unicode)でエンコーディングされているらしい。 そこでこのはてなブログに、ハングル文字を貼り付けて投稿してみる。 크리스마스는 외국 명절입니다. 꼭 행복해야 되고나, 꼭 카플해야 돼 필요없다고 생각해. 가끔 혼자 외롭게 보내는 크리스마스도 되게 멋있고요, 카플들은 잘 보내실테니까, ** 한잔에 그럴 **** 분위기도 좋고 그런 크리스마스도 좋은 것같습니다. 저** 라디오하고 있을테니까, 라디오 들이시고요. クリスマスは、外国の行事です。必ず幸せにならなければならないとか、必ずカップルでなければならないわけはないと思うよ。ときには、ひとりで淋しく過ごすクリスマスもけっこうすてきでしょう。カップルたちは楽しく過ごしているんですから、** 一杯? そんな *****雰囲気

パッケージJava製品開発担当の大です。こんにちは。 朝晩はだいぶ肌寒くなって、秋らしい空気になってきましたね。 前回も書いたとおり、現在HOSでは製品のJavaSE 7での動作検証を進めています。JavaSE 7で早く使いたい方、申し訳ありませんがいましばらくお待ちください。 さて、検証している上でちょっと困ったことが出てきました。従来動いていたテストコードの一部が、JavaSE 7ではコンパイルもできなくなってしまったのです。これはJavaSE 7の不具合か?と思い、調査してみました。 日本語のテストメソッド名 製品のクラス名やメソッド名では使いませんが、開発時のユニットテストのメソッド名やクラス名は、最近は、基本的に日本語で書くようになりました。これまで日本語メソッド名で特に問題が起こっていなかったことと、テストのレポートの出力がアルファベットのキャメルケースに比べ圧倒的に見やすいか

Firefox などで下の半角濁点「゙」・半角半濁点「゚」を選択してみてほしい。 ガ、あ゙、漢゙、a゙、 ゙、☃゙、✐゙ え゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙っ!! ぷ゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚。 ぬ゙゙゚゙゙゙゚゚゚゚゙゙゙゙゚゙゚゙゙゚゙゙゙゙゙゚゙゙゙゚゙゚゚゚゙゙゙゚゚゚゚゚゚゚゙゙゙゚ーん いくら半角(半)濁点だけを選択しようとしても、前の文字まで(それがスペースだろうが記号だろうが)一緒に選択されてしまうと思う。もう少し正確に言えば選択されるのは [^゙゚][゙゚]* にマッチする部分で、カーソルの移動の際にも [^゙゚][゙゚]* が一文字として扱われる。delete キーを押すと [^゙゚][゙゚]* が一気に消えるが、backspace キーでは半角(半)濁点がひとつずつ消える。Windows のメモ帳*1など昔ながらのアプリケーショ
UTF-8とUCS-4の相互変換をC/C++で書いた時のメモ。たぶんまた自分で読むので。 背景 文字のちょっとした正規化などの処理をしたいがiconvやICUなどの巨大なライブラリは使いたくないということがたまにある。嚴密な文字列処理をしたい場合にはそれらのライブラリを使った方が安全だし確実であることは言うまでもないが、ちょっとしたユーティリティを作るのにはちょっとオーバースペックである。 一方で、UTF-8文字列に対してはASCII用正規表現ライブラリを使えば検索や置換などの大抵の操作ができるので、自分でゴリゴリと変換処理を書かなければいけないことはあんまりない。 ただ、たまに自分で書きたくなることもある。ヨーロッパ系言語のアクセント記号を外したり、半角片仮名を全角片仮名にしたり、漢字の異体字表記を常用漢字に統一したりといった処理を一気にやりたい場合とか。そんな場合、各文字が可変長バイト
TweetTwitterで見かけるようになったオバケのような動物の顔文字。Yahoo知恵袋にこの顔文字についての問い合わせがあった。 ✔ 最近ʕ•̫͡•ʔとか༼⍨༽を見かけますが、これはどんな仕組みになっているのですか? -Yahoo!知恵袋 質問の回答として当ブログの記事がリンクされているが、この顔文字は本当に合成用区分符号で構成されているのだろうか。 気になったので調べることにした。 実は、先の記事でUnicoder Liteを紹介した後、アプリの作者さんからメールを頂いていた。 そこにUnicoder Pro (App Store 450円)なら顔文字を解析できると書いてあったので試した。 簡単にできた。 1)IPA発音記号拡張 0295 2)一般句読点2022 3)合成用区分符号 0361 4)合成用区分符号 032B 5)一般句読点2022 6)IPA発音記号拡張 02

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