7月23日、アイドルグループ「UNICODE」(ユニコード)の日本におけるデビューシングル「HELLO WORLD」が発売された。日本人女性5人で構成されたグループだが、全員が韓国語を話せるバイリンガルで、プロデュースの拠点も韓国であることからK-POPアイドルをうたう。一方、グループ名やデビューシングルのタイトルから、SNSではITエンジニアなどIT関心層から「検索しにくそう」とする声も出ている。 UNICODEは、韓国では4月にデビュー。グループのマネジメントに携わるENPASS(東京都品川区)によれば「グループ名の由来は『UNICODE』は『Unity』(統一性)と『Code』の合成語で、『彼女たちの音楽は全ての国で共用されるコードのように全世界で通じる』という意味が込められている」という。 ただし、グループ名は文字コードの標準規格「Unicode」と、デビューシングルのタイトルはプ
技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア
23日に日本デビューを果たしたメンバー全員が日本人の5人組K-POPガールズグループ「UNICODE」(ユニコード)が27日、都内で『UNICODE日本デビュー記念ライブイベント』を開催。グループ名をめぐる声に答えた。 この記事の写真はこちら(全15枚) UNICODEは、昨年4月にABEMAで公開された日本最大規模のオンラインオーディション「PROJECT K(プロジェクト ケイ)」で選抜されたメンバーを含む5人組。MIO(ミオ)、HANA(ハナ)、ERIN(エリン)、SOOAH(スア)、YURA(ユラ)の5人全員が日本人で、韓国語も流ちょうに話せる。23日に日本デビューを果たした際、世間からは「全員日本人だったらK-POPではなくJ-POP」という反応があった。 「J-POPじゃないか」の声に対し、ERINは「中にはネガティブな声もありますが、私たちはすべて肯定的に捉えています」と言及
HTMLファイルで特殊記号を使う際、① は ①、© は © のように置き換えて書かないといけないものだと思いこんでいないでしょうか。 現代ではそれは誤解です。 UTF-8では特殊記号の文字参照は不要 そもそも環境依存文字とは、データを扱う機種・ソフトウェアなどの違い(文字コードの割り当ての違い)により表示に違いが出てしまう文字のことでした。 例えばShift_JISには © が含まれておらずそもそも保存できなかったり、 ① などの丸数字は含まれているものの、WindowsとMac OS(当時)の割り当ての違いにより正しく表示できなかったりしました。[1] しかし現在ではUnicodeによって文字コードは統一化されており、その問題はほとんど起きなくなっています。 近年では多くの場合 UTF-8 でファイルを記述すると思います。 HTMLファイルの文字エンコーディングが
この投稿ではJavaScriptで文字数をできるだけ正確にカウントする方法について取り上げます。 文字数とは? 要件で「文字数を表示してほしい」「○文字以上はバリデーションエラーにしたい」と文字数を考慮しないとならないことがあります。 そもそも文字数とは何でしょうか。 たとえば、アルファベットの「A」は1文字と数えられそうです。 次の絵文字は、何文字になるでしょうか? この絵文字はiOSであれば14.5の環境では、UI上では上のように1文字のように表示されます。しかし、それ以前のバージョンでは、同じ文字列データでも😵💫のように2文字で表示されます。なお、この絵文字は3つのコードポイントU+1F635 U+200D U+1F4ABからなります。この絵文字の「文字数」はいったい何文字として扱ったらよいのでしょうか。 以上のように、ひとことで文字数と言ってもデータと見た目と環境の3つのややこ
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 中国では、2023年8月1日に強制力のある国家標準規格「GB 18030-2022」(信息技術中文編碼字符集)が施行される。中国で「強制」という言葉が出ると「また締め付けが強化される」と反射的に考えてしまうかもしれないが、これは文字コードの標準規格を新たに導入するという話だ。珍しい名字などに使われ、既存の文字コードに未登録の漢字に対応しようというものになる。 中国の面積は日本の国土の約25倍で、約14億人の人口を擁している。一部の地域限定で使われている漢字や、少数民族の固有名詞でのみ用いられている漢字もある。文字コードに含まれない漢字を使っている人は約6000万人もいるそうだ。例えば、山東省青島市郊外にシュイユー村という地元ではまあまあ
2021/9/10 追記: 改めて更新された話を統合して整理して書き直しました. 以降はこちらを参考にしてください: ill-identified.hatenablog.com 2021/1/15 追記: RStudio 1.4 がリリースされたのでなるべくアップデートしましょう 2020/12/06 追記: Japan.R で今回の話の要約+新情報を『Mac でも Windows でも, PNG でも PDF でもRのグラフに好きなフォントで日本語を表示したい (2020年最終版)/Display-CJK-Font-in-Any-Gpraphic-Device-and-Platform-2020 - Speaker Deck』として発表した. ハイライトは「近々出るRStudio 1.4 があれば fontregisterer はほぼいらなくなる」 2020/10/31 追記: geom
Slack は、メッセージのどこからどこまでハイライトするかを、 Unicode の私用領域 *1の U+E000 と U+E001 を使って表しているらしく、こういう HTML を glitch とかで書いて、 <html> <head> <meta property="og:title" content="Slackでタイトルをハイライトする" /> <meta property="og:description" content="Slackで説明も好きな部分をハイライトする" /> </head> </html> そのページを Slack で展開させたりすることで、好きな部分を勝手にハイライトできて面白い *2 *3。 ちなみに printf "\ue000寿司\ue001が光ったら成功"
この記事では、 JavaScript で文字コードを扱う際に知っておくべき概念である Code Point や Code Unit、サロゲートペア、といったものについて説明していく。 また、具体的にそれらの概念を使ってどのようにコードを書いていくのかについても扱う。 この記事に出てくるコードの動作確認は以下の環境で行った。 Deno 1.26.0 TypeScript 4.8.3 Code Point (符号位置) プログラムで文字を表現する方法は複数あるが、 JavaScript では Unicode という方法を採用している。 Unicode ではあらゆる文字に対して一意の値を割り振ることを目的としており、この値のことを Code Point (符号位置)という。 Code Point は 16 進数の非負整数で、文章中で表記するときは接頭辞としてU+をつける。 例えばAという文字の
皆様こんにちは、NewsPicksエンジニアの米澤です。 先日 2023/03/30は、こちらでアナウンスしていた通り、サービスの停止を伴うシステムメンテナンスを実施させて頂きました。 NewsPicksをご利用頂いている皆様には、ご迷惑おかけいたしました。 今回はこのメンテナンスの中で行われたDBテーブルのmigrationについてお話ししたいと思います。 ことの始まり やったこと 方針決め utf8mb4に対応していないテーブルを調べる migrationを作成する 影響範囲を調べる 開発環境でリハーサルを行う メンテナンスの日 最後に ことの始まり NewsPicksではバグの検知にBugSnagを利用しています。 ある時、BugSnagにこんなエラーが通知されてきました。 org.springframework.orm.hibernate4.HibernateJdbcExcepti
はじめに 2023年、長い時を経て awk がとうとう Unicode (UTF-8) と CSV に対応しました 🎉🎉🎉 awk で日本語がうまく扱えない(場合がある)、Excel が出力する CSV ファイルが扱えない(場合がある)、といった問題が解決に向けて一歩に進みます。 去年、本家 awk (One True Awk, nawk) に Unicode サポートが Brian Kernighan の手によって追加されたと話題になった(参照)ことを覚えているでしょうか? Brian Kernighan が誰だか知らない方がいるかもしれないので説明すると、オリジナルの awk の開発者の一人で awk の頭文字、Alfred Aho、Peter Weinberger、Brian Kernighan の一人です。通称「K&R」の「プログラミング言語C」や「プログラミング言語AWK」
与野党一騎打ちのはずが、野党候補と名前の読みが同じ「かめいあきこ」氏の出馬表明で注目の衆院選島根1区。渦中の無所属新人・亀井彰子氏(64)が30日、松江市内で個人演説会を開いた。 【写真】こちらが亀井彰子氏 ラフな格好だった 島根1区は、自民党細田派会長の前職・細田博之氏(77)に対し、前回は比例復活した立憲民主党前職・亀井亜紀子氏(56)が挑む。地元政界関係者によると、思わぬ〝ダークホース〟の参戦で、亜紀子氏は「名前を漢字で書いてほしい」と票の取りこぼしを防ごうと必死。当初は窮地に追い込まれる見方もあったが、むしろ浮動票層から注目が集まっているという。 一方の彰子氏は、選挙カーがなく運動員もいない。選挙ポスターの掲示も少ないため、多くの有権者に「謎の人物」として受け止められていた。そんな中この日午後、市内の会議室で開かれた3回目の個人演説会には、有権者15人ほどが「どんな人なんだ?」と集
日本で誕生し、現在では世界中の人たちが、 文字通り日常的に活用している「絵文字」。 海外でもそのまま「EMOJI」で通じる世界語となっており、 日本独自の絵文字がそのまま海外でも使用されていますが、 日本の文化に根差している絵文字は、 外国人には通じないこともしばしばあるようです。 今回ご紹介する写真は、日本人の方がドイツで撮影したもので、 フランクフルト国際空港のロゴが写っています。 そのロゴが漫画やアニメで多用される「怒りマーク💢」に見える事から、 投稿者のTatsunoshin(@tatsunoshin_ofc)さんは、 「フランクフルト空港常にキレてるんやけど何?💢」と、 率直な疑問をぶつけておられます。 海外の多くの人々にとって「💢」に「怒り」のイメージはなく、 むしろ漠然と見ていた謎のマークである事から、 この疑問が外国人には非常に面白く、興味深かったようで、 多くのサイ
こんにちは。 メディアサービス開発部Webアプリケーション開発課のフサギコ(髙﨑)です。部署名が変わりました。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるテックリードのような立ち位置で働いています。 本記事では、UTF-8環境下で動くRailsがShift_JISな外部APIと通信する方法についてお話しします。 前提知識 文字コード UTF-8環境下で動くRailsがShift_JISな外部システムと通信するには Shift_JISな外部APIに対してPOSTリクエストする べた書きとしては Railsにおいては Shift_JISで使用できない文字が混ざっていないかをバリデーションする Shift_JISな外部システムからPOSTリクエストを受ける おまけ: ユーザのブラウザにShift_JISでPOSTさせる
gistfile1.md PDF に謎の漢字が含まれるとき PDF などの中にある一部の日本語の漢字が、見た目は同じだけど異なる謎の文字に変換されていることがある 例 1: https://www.mhlw.go.jp/content/10906000/000628667.pdf 「長野」と「長崎」の「長」が、 U+9577 ではなく「⾧ (U+2FA7)」になっている 例 2: https://www.dpri.kyoto-u.ac.jp/news/12739/ 大量にある、どうしてこうなった PDF ではないので何かからコピーして書いた? この文字は 康煕部首 (Kangxi Radicals) というもので、部首としての文字である MS ゴシックなど Kangxi Radicals の字形がないフォントを指定すると表示できないので区別しやすい どこから来たのか? これらは(フォントに
When you open a document with an encoding different than the one it was created with, it's not possible to display the original text, and instead a garbled mess of corrupted characters are printed out. These are called "mojibake" in Japanese, and the word has also been borrowed into English. While mojibake aren't readable by humans, it turns out that different kinds of mojibake have different visu
MBSDでWebアプリケーションスキャナの開発をしている寺田です。 前記事では正規表現でのURLのチェックについて書きました。今回はその続きでマルチバイト文字を使った攻撃について書きたいと思います。 前提条件 本記事で想定するのは、ブラウザからパラメータとして渡されて来るURLを、リダイレクトやリンク等のURLとして使うケースです。その中でも、以下のようにサブドメイン部分(★の部分)を可変にする状況を主に想定します。 https://★.example.jp/… 攻撃の目標は、異なるドメイン(evil)のURLを与えてチェックをすり抜けることです。前回の記事にも書きましたが、この状況は(半角英数等のサブドメインしか受け入れないような場合を除き)「/」「?」「#」「\」のいずれかをサブドメインに入れることで攻略できることが大半です。 今回はこれらの記号が全て使用できないように対策されているこ
まえがき ミャンマーでは公用語としてビルマ語が使われている。ビルマ語の表記にはビルマ文字を用いるのだが、このビルマ文字のインターネット上での使用は、混迷を極めていた。そしておそらく今もまだ…。なぜか? それは、Unicodeという文字コードの標準がありながら、Zawgyiというものが広く使われていたためである。なぜそのようなものが登場し、普及することとなったのか、この記事で解説する。 目次 まえがき 目次 凡例 この記事で使う名称について ビルマ語表記 コードポイント ラテン文字表記について Zawgyiの概説と歴史 Zawgyiとは Zawgyiのダウンロード Zawgyi誕生・普及の経緯 複雑なビルマ文字 ビルマ文字とUnicode 回避策としてのビルマ文字フォントの登場 Zawgyiの普及 Zawgyiの実装 実装の方針 文字の並べ替えをせず、左から右に書く 文字の形のバリエーション
Windowsでは、文字コードに「ユニコード」を使う。Windowsに搭載されているフォントはさまざまあるが、ユニコード文字を表示できるように、多数の文字の形が組み込まれている。 今回は、Windowsでユニコードを“見る”方法について解説する。なお、WindowsではUTF-16LEエンコードをUnicodeと表記する。ここでは、エンコードと混同されないために、文字仕様のUnicodeは「ユニコード」とカナ書きすることにする。 GUIアプリでユニコードを使う ユニコード文字は多数ある。それぞれの文字に割り当てられた文字コードをユニコードでは「コードポイント」と呼ぶ。コードポイントは、「U+」の後ろに16進数4桁または6桁で指定するのが正式な表記方法だ。たとえば、「漢」は「U+6F22」となる。ユニコード関連の文書やもちろん、インターネット内のウェブページでも同様の表記をすることが多い。
· About · Changelog URL: Fetched 1.23 KB in 0.491662 seconds Don’t wrap lines · Tidy markup <!doctype html> <html> <head> <title>Example Domain</title> <meta charset="utf-8" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style type="text/css"> body { background-color: #f0f0f2; margin: 0; padding: 0; f
たとえば ・世界の合言葉はด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้ ・ด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้の左手 ・198ด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้ ・百億のด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้
きっかけ 以下のツイートで「埼玉埼⽟問題」と康煕部首を知りました。 「埼玉」と「埼⽟」の話。unicodedata.normalize('NFKC', '「埼玉」と「埼⽟」') でいけそう https://t.co/kte0sxDvZT — Haruhiko Okumura (@h_okumura) July 11, 2020 康煕部首とは ⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕ KangXi Radica
「日本語で繁体字や簡体字(のフォント)を使うと、日本語ネイティブには奇妙に見える。aとαどころではなく、英語をキリル文字など形の似た字を交えて書くくらい変だ」──海外開発者に向け、日本語の文章で中国語のフォントを使ってしまうことをこのように注意喚起した英語のWebページが「例が秀逸」「全ての開発関係者が目を通してほしい」と話題を集めている。 日本語を繁体字や簡体字のフォントで書く違和感を英文で例えた文章。「It would be looking something like this」をキリル文字などアルファベットに似た言語を交えて書いている(Needleさんが公開しているページから引用) Webページではフォントの違いがもたらす違和感に加え、繁体字、簡体字、日本語フォントの違いを図説。「刃」の字を使ってそれぞれの違いを説明している他、フォントの間違いを確認する方法やその原因、解決方法など
ChatGPTは文字コードをどのように解釈しているか土屋俊介氏:こんにちは。先ほど、発表が4分だと知った土屋です。PR TIMESというところで、機械学習のインターンをしています。 (スライドを示して)昨今、ChatGPTというものがメチャメチャはやっていますよね。私は使っていく中で、(ChatGPTが)文字コードをどのように解釈しているかが気になりました。なぜそんなニッチな話が気になるのかというと、自然言語処理とWebに関わっている以上、文字コードに関するプログラムをよく書くんです。その関係で気になったので調べてみました。 (スライドを示して)みんな知っているかもしれないですが、文字コード(と)はASCIIやUnicodeなどの、文字と数値を1対1に対応させることでコンピュータが処理できるようにするシステムのことです。 ChatGPTはUnicodeのどの部分を日本語と認識しているのかと
大規模文字セットのUnicodeは世界中のあらゆる文字を収録することを目指して策定されており、「溶解する顔」や「妊娠中の人」といった個性的な絵文字も数多く登録されています。そんなUnicodeに登録されている正体不明の記号「⍼」について、ブリティッシュコロンビア大学でソフトウェアについて学んでいるジョナサン・チャン氏がまとめています。 U+237C ⍼ RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW · Jonathan Chan https://ionathan.ch/2022/04/09/angzarr.html 「⍼」は数学記号用のフォントなどに含まれている記号です。例えば、数式・化学式用フォント「Cambria Math」に含まれる「⍼」を拡大してみるとこんな感じ。カギカッコのような直角と稲妻形の矢印が組み合わさった日常生活では全く目にすることのない
バックスラッシュ\を入力する時に円記号¥に文字化けが起きる理由 プログラムのソースプログラムは(LaTeXのソースファイルやWebページのHTMLファイル等と同様に)テキストファイル(教科書ではテキスト形式と呼ばれています。プレーンテキスト(plain text)とも呼ばれることがあります)というファイル形式で書かれます。このテキストファイルはどのようなOSでも必ずサポートされている最も基本的なファイル形式であり、実体は1バイトを単位として文字コードで表現されたデータが先頭から順に並んでいるだけのファイルです。 その文字コードは歴史的にはさまざまなものがありましたが、次第にアメリカで定められたASCIIコードが主流になり、世界中で使われるようになりました。これが国際的な規格になったものがISO/IEC 646です。これらは7ビットの文字コードなので2の7乗つまり128種類の文字が表現でき、
令和5年9/12にユニコード15.1が正式公開され、CJK漢字拡張-Iの他に“漢字構成記述文字”に指示記号4種、“CJK筆画”に拡張漢字構成記述文字の指示記号が1種類追加されました。ユニコードに採用されていない字の説明がしやすくなったのが重要です。𝚄+𝟹𝟷𝙴𝙵の一部除去指示記号は文字構成要素の一部が削除されていることを示す記号です。 漢字構成記述文字記号をラテン・ギリシャ・キリル各文字体系に応用した例で、ユニコードに採用されていない左右逆になる字形と逆になる字形を説明しやすくなりそうです。画像はにしき的フォントに含まれるユニコード未登録のラテン・ギリシャ・キリル各種字母を漢字構成記述文字記号で説明した例です。
Windows 10には、マイクロソフトが実装したcurl.exeコマンドが同梱されている。公開されているソースを元に作られた公式のcURLとはバージョンなどが異なっている Windows 10には、2018年のWindows 10 Ver.1803(RS3)からcurl.exeコマンドが標準で付属している。curl(カール)は、cURLの意味で、URLを使って指定するプロトコルを実行するコマンドラインツールである(以後記事中ではcURLをオリジナルの表記として使う)。 curlは1990年代後半に開発が始められ、当初はUnix(SunOS)上で、名前もhttpgetだった。開発が進むとともに、複数のプロトコルをサポートするなどして「cURL」となったのは1998年で、この頃にLinuxにも移植されたようだ。 Windows 10に付属しているのは、cURLの仕様からMicrosoftが作
PHP 8.1へのアップグレードにまつわるまとめ PHP 8.1へのアップグレードには、mbstringにまつわるマニュアルに記述されない後方互換性のない変更が含まれることがあります。そのことを周知するべく、この記事を書くことにしました。 私てきめんは、PHPカンファレンス 2022にて、「治っていくmbstring 令和時代の文字化け」というタイトルでトークしています。以下スライドも参考にしてください。 Major overhaul of mbstringについて PHP 8.1から、Major overhaul of mbstringと呼ばれる、mbstringの大規模改修の内容が反映されるようになりました。困ったことに、RFC(Request For Comments)やChangelog、マニュアルにない内容で、mbstringを多用するPHPユーザーにとてつもない困惑をもたらすこ
プログラマがシステム開発において共通で必要となる、技術と業務の狭間の共通知識を解説します。連載第1回は文字コードの概要編です。 0. はじめに 業務システムを開発する場合、プログラミング言語、フレームワーク、ミドルウェア、業務知識など以外に、共通で必要となる知識があります。文字コード、国際化、日付・時刻の扱い、住所コード、郵便番号、電話番号などの各種コード、…。 本連載では、プログラマがシステム開発で必要となる、技術と業務の狭間の共通知識を解説して行きたいと思います。 連載第1回は文字コードの概要編です。コンピュータシステムにおいて、文字情報は文字コードを用いて処理されます。文字コードとは、各文字に対応付けられた数値 (符号) のことです。近年、新規に開発される業務システムでは Unicode が使われることが多いと思いますが、既存システムとの連携など他の文字コードが使用されることもまだま
はじめに JavaScript において文字数を String の length で取得すると、期待した値が得られないことがある。この記事では、実際に String の length を使うことによって発生した Prettier のバグを紹介する。 前提 JavaScript の String には length というプロパティが存在する。このlengthプロパティは文字列の文字数を表すものではない。 実際には、文字列中に含まれるUTF-16のコードユニットの数を返す。つまり、ASCIIをはじめとしたBMPに含まれるものであれば我々の期待する文字数が返ってくるが、一部の漢字やemojiなどについてはそうはならない。 たとえば、漢字の𠮟(U+20B9F)はサロゲートペアであり、2つのコードユニットで表される。そのため、length は 2 になる。
「N 文字以上 / 以内」みたいなことを言われたときに考えること. 「文字」とは? 単に「文字」と言っても, それが指しているものが何かは自明ではない. 符号単位 (code unit) JavaScript の場合, 文字列は UTF-16 としてエンコードされている*1ので, そのエンコードの単位である 16 bit ごとに分割するというのがこの方法. .length で取得できるのはこの符号単位の数で, .slice() に与えるのも符号単位で数えたインデックスとなっている. > "あいうえおABCDE".length 10 > "あいうえおABCDE".slice(0, 5) "あいうえお" ところで Unicode には 16 bit で表せる数以上の「文字」 (U+0000 〜 U+10FFFF) が含まれるので, UTF-16 では 1 つの符号単位で表せない「文字」は 2
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く