【話し手】 ゆー(Yu)楔形文字検索ツールqantuppi、クルヌギアを開発。技術同人誌『楔形文字とユニコードの出会いにまつわるエトセトラ』で技術書典「第3回 刺され!技術書アワード」エポックメイキング部門受賞。家にねこがいます。 GitHub:uyumyuuy Twitter:@uyum 本コーナーでは技術へのタッチポイントを増やすことを目標に、各分野で活躍されている方をお迎えします。 今回のテーマは文字コードです。楔形文字(くさびがたもじ)に詳しくなってしまったゆーさんに古代文字の符号化の議論、Unicodeが世界のすべての文字を収録する意義を技術と文化の両面から紹介いただきます。 楔形文字との出会い 日高:Unicodeをはじめとした文字コードって普段は意識しない領域だと感じています。いろいろ教えてもらいながら話せればと考えています。 ゆー:よろしくお願いします。私もこの分野を専門に
とは 「ア」と「ア」, 「①」と「1」など等価な文字の表記を統一する操作. NLPで前処理としてよく使われる "Unicode正規化(ユニコードせいきか、英語: Unicode normalization)とは、等価な文字や文字の並びを統一的な内部表現に変換することでテキストの比較を容易にする、テキスト正規化処理の一種である。" - Wikipedia NFD, NFC, NFKD, NFKC 4種類の正規化形式が存在する. 「NFD (Normalization Form Canonical Decomposition)」 「NFC (Normalization Form Canonical Composition)」 「NFKD (Normalization Form Compatibility Decomposition)」 「NFKC (Normalization Form Com
Reading the excellent article by JeanHeyd Meneide on how broken string encoding in C/C++ is made me realise that Unicode is a topic that is often overlooked by a large number of developers. In my experience, there’s a lot of confusion and wrong expectations on what Unicode is, and what best practices to follow when dealing with strings that may contain characters outside of the ASCII range. This a
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support. I started this as a personal project at the very end of 2018. By May 2020 I considered it was very close to feature parity with the original, and decided to make it open. The original goals of this project were: Making Turbo Vision work on Linux by altering the le
One of the most common “data type” in programming is the text string. When programmers think of a string, they imagine that they are dealing with a list or an array of characters. It is often a “good enough” approximation, but reality is more complex. The characters must be encoded into bits in some way. Most strings on the Internet, including this blog post, are encoded using a standard called UT
日本発祥の絵文字は海外でも「Emoji」として広く浸透しており、メッセージアプリやSNSへの投稿などに多様されています。世界中の文字を収集して文字コード付与する規格「Unicode」では、バージョンアップごとに複数の絵文字を新規追加しており、これまでに「溶解する顔」や「ランプの魔人」などの独創的な絵文字が数多く追加されてきました。新たに、絵文字データベースサイトの「Emojipedia」が、2022年9月に承認予定のUnicode 15.0で追加される絵文字のサンプルイメージを公開。サンプルイメージには「ハイタッチする手」や「震える顔」などの絵文字が含まれています。 New Emojis In 2022-2023 https://blog.emojipedia.org/new-emojis-in-2022-2023/ Emojipediaが公開したサンプルイメージには、色違いも含めて全31
Unicode絵文字で使われている仕組み、特に、複数の文字を組み合わせて1つの絵文字を組み立てる「Emoji Sequences」のことは意外と知られていないかもしれません。Unicode絵文字がどのように成り立っているか、ひととおり大雑把に紹介してみます。 例えば: ❤️🔥 (heart on fire) ← ❤️ + ZWJ + 🔥 ❤️🩹 (mending heart) ← ❤️ + ZWJ + 🩹 🏳️⚧️ (transgender flag) ← 🏳️ + ZWJ + ⚧️ 🏳️🌈 (rainbow flag) ← 🏳️ + ZWJ + 🌈 🏴☠️ (pirate flag) ← 🏴 + ZWJ + ☠️ 🐕🦺 (service dog) ← 🐕 + ZWJ + 🦺 🐈⬛ (black cat) ← 🐈 + ZWJ + ⬛ 🐦
3月10日付けで新しいUnicode 13.0がリリースされた、との連絡をいただいていたのだが、私(安岡孝一)自身がちょっとバタバタしていて、日記に書くのを忘れていた。今回、とうとう漢字がU+30000~U+3134Aにハミ出してしまったのが、かなり大変だったりする。また、広東語・客家向けの注音字母(Bopomofo)がU+31BB~U+31BFに追加されたのだが、どういう漢字音を表しているのか、私個人にはイマイチ聞き分けられないのがツライ。 なお、JIS X 0221の改正もまもなくおこなわれる予定だが、こちらはISO/IEC 10646:2017相当なので、当然Unicode 13.0には追いついていない。ただし、JIS X 0221の附属書JAは、今回の改正で「文字情報基盤」が追加されるので、関係各位は注意されたい。
ターミナルからUnicodeのデータを検索できるコマンドラインツール「cicero-tui」がリリースされています。詳細は以下から。 cicero-tui(CICERO Terminal User Interface)はUnicodeデータベース・ツール「Cicero: A Unicode® Tool for Mac/iOS」を開発しているニュージーランドのDJメーカーSerato DJのエンジニアYan Liさんが新たに公開したコマンドラインツールで、macOSやGNU/LinuxのターミナルからUnicodeのデータを検索/確認することが出来ます。 cicero A Unicode tool with terminal user interface. eyeplum/cicero-tui: A Unicode tool with terminal user interface. – G
A short write-up on combining digraphs, a feature built-in to vim, and Haskell's UnicodeSyntax extension, to easily write beautiful Haskell programs with unicode symbols. #haskell#vim 1 Haskell’s Unicode Syntax Extension Haskell (well, GHC Haskell) features an extension called UnicodeSyntax. When enabled, this extension allows the use of certain unicode symbols in place of their corresponding keyw
Unicode sorting is hard & why browsers added special emoji matching to regexp As I work on Zorex, an omnipotent regexp engine I have stumbled into a world of tales about why Unicode text sorting is so annoying in the modern day. Let’s talk about that. Why ASCII sorting is not enoughTwitter’s emoji problem - or when Unicode locale-aware sorting Really Matters™Browsers added special emoji matching t
The new emoji are listed in Emoji Recently Added v13.0, with sample images. These images are just samples: vendors for mobile phones, PCs, and web platforms will typically use different images. In particular, the Emoji Ordering v13.0 chart shows how the new emoji sort compared to the others, with new emoji marked with rounded-rectangles. The other Emoji Charts for Version 13.0. have been updated t
This article will explore the unique role that text plays in vaporwave music and art. Why do vaporwave tracks, albums, and artist names use stretched out fullwidth text, Japanese writing 変, and 𐒖Ƭᖇ𝚫ƝǤⵟ looking Unicode characters? Why are track titles sometimes formatted to look like FILENAME.AVI or Muzak Corp™ Song Title? Analyzing the text characters that accompany vaporwave can help us underst
Ambiguousだけ東アジアか否かによって扱いを変える必要があります。 FullwidthとWideは東アジア圏では全角で扱いますが、それ以外の文化圏の文章には登場しないため考慮する必要がありません。 東アジア圏かどうか?をどう判定するべきかはプラットフォームによって異なります。私は.NETで扱ったのでデフォルトはCurrentUICultureInfoで処理分岐するようにしました。 さて、ここまでが基本です。 ここから先が闇です。 闇の始まり さて、先ほどの扱いについては、UAX #11: East Asian Widthに明確に記載されています。 しかし、実際に文字をひとつずつ追いかけていくと怪しい文字が頻出します。 ここからは日本で最も著名な等幅フォントである「MS ゴシック」で見ていきたいと思います。 さてAmbiguousは全角で扱います。Ambiguousには「☎」や「®」が
大規模文字セットのUnicodeは世界中のあらゆる文字を収録することを目指しており、個性的な絵文字も数多く登録されているほか、正体不明の記号もいくつか含まれています。さらに、Unicodeに存在する「大文字でも小文字でもないアルファベット」について、ソフトウェアデベロッパーであるレイモンド・チェン氏がMicrosoftの開発者ブログで解説しています。 What has case distinction but is neither uppercase nor lowercase? - The Old New Thing https://devblogs.microsoft.com/oldnewthing/20241031-00/?p=110443 Unicodeにはラテン文字をはじめいろいろな言語の文字が収録されていますが、その中に「大文字」「小文字」とともに別の種類が登録されている文字が
UTF-8,Unicode, Goのbyte, rune関係がよく分からなかったのでいろいろ調べて、自分なりに解釈ができたので、まとめてみようと思います。 まずは定義から行きましょう。 UTF-8: Unicodeで使える8ビット符号単位の文字符号化形式 Unicode: 文字集合(文字セット)が単一の大規模文字セット ようするに、UTF-8は、Unicodeを符号化(エンコード)するやつで、Unicodeはいろんな文字の集合です。 aとか"あ"とか"亜"とか、ほんといろいろな文字の集合。 そして、Unicodeの文字には、識別しやすいように数字が割り振られていて、その数字をコードポイント(Go言語でrune型に割り当てられる)といいます。実際にコードで違いを見てみましょう。 func main() { s := "あいうえお" b := []byte(s) for _, bi := ra
Microsoftが、外字の利用を止めることを推奨するブログ記事を公開している(窓の杜)。 Microsoftが収集したWindows診断データによると、日本では突出して外字の使用頻度が高いという。この背景には、Windowsにおいては長らく日本語の文字コードとしてShift-JISが使われており、Shift-JISで表現できない文字を外字として登録して使っている、ということがあるようだ。一方で現在のWindowsはUnicodeをサポートしており、Unicodeを利用することで「外字でなければ表示できない文字」はほぼなくなるという。 ただ、たとえばVisual Basic 6で開発されたアプリケーションなど、現在でもUnicodeに対応していない古いアプリケーションが稼働している場合もある。そのためMicrosoftはこうしたシステムを段階的に移行していくことを推奨している。
とほほのUnicode一覧 トップ > Unicode一覧 [←] 前ページ、[→] 次ページ、[Click] 辞書ページを開く ◀ ▶ 0123456789ABCDEF Copyright (C) 2022 杜甫々 初版:2022年12月4日 最終更新:2022年12月4日 http://www.tohoho-web.com/ex/unicode-list.html
Unmarked properties are from Unicode V15.1.0; the beta properties are from Unicode V16.0.0β. For more information, see Unicode Utilities Beta. help | character | properties | confusables | unicode-set | compare-sets | regex | bnf-regex | breaks | transform | bidi | bidi-c | idna | languageid Boundaries Breaks Demonstrates different boundaries within text. Enter the sample text. Pick the kind of bo
はじめに Unicode の White_Space(Zs) カテゴリ Java における trim と strip はじめに 通常目にするスペースには、半角スペース と全角スペース があるが、Unicode の定義上でスペースに分類されるものは(Unicodeのバージョンによっても異なるが)18種類存在する HTML で良く目にする文字実体参照の は、このスペースでの改行を禁止(No-Break)するもので、半角スペースとは異なる Java の String.trim() でトリムされるスペースは、半角スペース U+0020 Java の String.strip() の場合は、ほとんどのスペースがトリムされるが、No-Break なスペースはトリムされない(つまり なスペースはトリムされない) Unicode の White_Space(Zs) カテゴリ
はじめに APIから受け取ったJSONをコピペしてVSCodeで確認したいと思った時に、JSONが1行で返ってきたり、StringがUnicodeにエンコードされていてどんな値が入ってるか分からない、ということがあったため備忘録として投稿 前提 Unicodeのデコードは Encode Decode というVSCodeの拡張機能を用います 手順 1行のJSONを整形する方法 新しいファイルを作成(Mac: cmd + n またはタブのところを2回クリック) コピーした1行JSONを貼り付け 右下の言語モードをJSONにする(Mac: cmd + k 押した後 m) 右クリックで『ドキュメントのフォーマットを選択』(Mac: option + shift + L) Unicodeをデコードする方法 VSCode検索機能で、正規表現をONにして\\u.{4}と検索 alt + enter (M
この記事では、 Unicode において表示不可能な文字を表現する「置換文字」について説明する。 この記事に出てくるコードの動作確認は以下の環境で行った。 Deno 1.26.0 TypeScript 4.8.3 概要 Unicode において、表示しようとした文字が何らかの理由で表示不可能なとき、黒い菱形に白いクエスチョンマークが書かれた文字が表示される。 「�」がそうなのだが、環境によっては表示されずカギカッコの中が空白になっているかもしれないので、画像も載せておく。 この文字を「置換文字」と呼ぶ。 サロゲートペアとして不正なケース 文字が表示不可能な例として、サロゲートペアとして正しくないケースがある。 サロゲートペアや Code Point の概要は以前書いたので、必要ならこちらを読んで欲しい。 numb86-tech.hatenablog.com Code Point のうち一部
文字コードの国際規格を管理する団体Unicode Consortiumは、新しい絵文字「Unicode Emoji 13.0」が最終決定したと発表しました。 タピオカやフォンデュが登場 ホッキョクグマ、タピオカミルクティー、フォンデュなど62種が決定。新しい絵文字は通常、9月~10月に携帯電話で使用できるようになるとのこと。 子どもを抱く人の絵文字には男性の姿も advertisement 関連記事 Android版ハンバーガー絵文字でチーズの位置がおかしい重大な問題が発覚 GoogleCEO「最優先で修正する」 iOS版でもレタスの位置がおかしい問題が確認されています。 Apple、不評だったベーグルの絵文字を修正 クリームチーズ入りに おいしそうになりました。 Twitter、ダイレクトメッセージで絵文字リアクションが可能に ハートや炎などでシンプルに意思を送信 絵文字は困り顔や泣き顔
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
Summary This annex describes guidelines for determining default segmentation boundaries between certain significant text elements: grapheme clusters (“user-perceived characters”), words, and sentences. For line boundaries, see [UAX14] . Status This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a
Ambiguousだけ東アジアか否かによって扱いを変える必要があります。 FullwidthとWideは東アジア圏では全角で扱いますが、それ以外の文化圏の文章には登場しないため考慮する必要がありません。 東アジア圏かどうか?をどう判定するべきかはプラットフォームによって異なります。私は.NETで扱ったのでデフォルトはCurrentUICultureInfoで処理分岐するようにしました。 さて、ここまでが基本です。 ここから先が闇です。 闇の始まり さて、先ほどの扱いについては、UAX #11: East Asian Widthに明確に記載されています。 しかし、実際に文字をひとつずつ追いかけていくと怪しい文字が頻出します。 ここからは日本で最も著名な等幅フォントである「MS ゴシック」で見ていきたいと思います。 さてAmbiguousは全角で扱います。Ambiguousには「☎」や「®」が
MicrosoftがApple SiliconとUnicode Keyboard Mode使用時にクライアントサイドのIMEをサポートしたMac用リモートデスクトップクライアント「Remote Desktop v10.6」をリリースしています。詳細は以下から。 Microsoftは現地時間2021年04月14日、同社のリモートデスクトップクライアント「Microsoft Remote Desktop」をv10.6へアップデートし、新たにApple Siliconをネイティブサポートしたと発表しています。 Microsoft Remote Desktop v10.6.0 Added native support for Apple Silicon. Added client-side IME support when using Unicode keyboard mode. リリース
Unicodeにおいて、ブロック(英語: block)とは、符号位置 (code points) の連続する範囲を意味する。ブロックには一意に名前が付けられ、重なりはない。各ブロックは hhh0 形式の開始符号位置と hhhF 形式の終了符号位置を持つ。ブロックは、未割当 (unassigned) または非文字 (non-character) である符号位置 (en) を、明示的に含むことができる[1]。名前付きのブロックのいずれにも属さない符号位置、例えば未割当の面である第4面-第13面に属する符号位置は、ブロックとして「No_block」という値を持つ。 逆に言えば、割当済 (assigned) の符号位置はすべて「ブロック名」(Block name) という特性(英語版) (property) を持つ。これはその文字 (character) があるブロックの名前である。これは符号位置
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く