UTF-8 文字(列)と UNICODE の変換


公開 (UL): 2020-05-04
更新 (UD): 2020-10-31
閲覧 (DL): 2021-10-17

この記事のもくじ

→本文へ
当サイトは SNS の公式アカウントがないので,「議論ネタ」にする際は,皆さんのブログ,メーリングリスト,SNS や掲示板などで,適当にハッシュタグを付けたりリンクを掲載するなどしてご利用ください。

前の記事

2020-05-04
エスケープ文字変換/復元

次の記事

2020-06-07
存在不明のパス名からディレクトリを構築する

最近の記事

2021-06-01
Base54
2021-06-01
PPOP
2021-03-04
全角⇔半角の変換
2021-02-23
五十音の「辞書順」の処理
2020-12-22
年月日から曜日を求める数式
新着情報

新着情報 Recent docs.

Sorry, but almost these pages are only Japanese.
「使命」を捨てる日本のマスコミ «The Japanese mass-communication companies desert their essential missions, and make worse in society.»
日本のマスコミが「社会的問題を悪化させる」ような報道を続ける構造的問題。
現場を知らないメーカーの夢想 «Makers say "we'll make good!" without investigation of working on-the-job.»
日経新聞記事の感想。「遠隔操作ロボットが医療介護現場で人材を活かす」という眉唾。
PPOP «Password encrypted file is sent and the Password is notified Otherway Protocol.»
一般的な暗号化ファイルのパスワードを安全に伝える方法。
「マイナンバー」が危険なこれだけの理由 «The reasons of "My-Number System" is danger.»
それでも「マイナンバー」を推す裏の理由を推察。
デジタル化なら「スタイル編集」すべき «Let's "Style-Editting" with word-processor application.»
ワープロで「書式設定」の代わりに「スタイル編集」することで使える様々な便利機能。

人気記事 Frequent view pages.

[半角/全角/漢字] キーの使い方 «What functions does [半角/全角/漢字] key have.»
アクセス急上昇! 日本語モードかどうか確認せず確実な文字入力を実現する方法。
表計算で「令和」に対応する方法
How to adapt the Gengo era "Reiwa" on spreadsheet applicaiton.

古いアプリも OK。「表計算 令和」の検索結果上位御礼!
表計算ソフトで予定表を自動作成する超便利な方法 «How to make the schedule table automatically on spread-sheet.»
「毎月第○×曜日」的な法則は自動で作らせてラクしよう!
表計算ソフトに「個人情報保護機能」を仕込む方法 «Prevention to leak private-data with spread-​sheet macro function.»
「漏えい」のためのフェイルセーフ。「表計算 個人情報」の検索結果上位御礼!
Wary-Basher (ワリバッシャー)
DIY device that enables the handicapped to operate many things with a switch like push-button.

障害者の様々な操作をスイッチ操作で実現する器具。キットも発売中! 「作り方」PDF ダウンロード多数御礼!←地方教育委で人気。
貧乏人を殺す行政の構造 «Structurally, the administrators kill the poors in Japan.»
ヘタすると多摩川に流されるところだった台風 19 号

この記事に対する → 調布市の反応

おすすめ! Recommend

「事故防シート」について «Cared persons taking with "Jiko-​Bow-​Sheet" prevents from accidents.»
介護現場の負担軽減と事故防止のアイデア
【連載】 キーボードの「キー」の詳しい使い方 «The detial of usage each key on keybord.»
各キーの機能詳細。機能別五十音順一覧。
和易ゐ記 (WAI-WIKI) «WAI-WIKI is light­weight markup language for Japanese, and generates HTML on this server on-​demand.»
当サイトで開発/使用中の日本語向けに特化した軽量マークアップ言語

ご連絡 For contact safely.

当サイト管理者(石川)への連絡内容の機密保持には,こちらで取得できるパスワードをご利用ください。 Get password for file(s) encryption to send the admini­strator of this site M.Ishikawa.

ご支援 Support this site.

この活動をご支援いただける方はこちらへ Could you support this site, see here (but Japanese).

● perl の場合

◆ UNICODE( 0-0x10FFFF )→UTF-8(2020-10-30 更新)

 U+10000 以降コード対応。

▼ perl で UNICODE( 0-0x10FFFF )→UTF-8
  sub UC16toUTF8 { my $c = $_[0]; # ( 0-0x10FFFF )
    return ( $c < 128 )? chr( $c ):
	( ($c < 0x800 ? (chr( 0xC0 +( ($c >> 6)& 0x1F ) ) ):
	( ($c < 0x10000 ? chr( 0xE0 +( ($c >> 12)& 0x0F ) ):(
	   chr( 0xF0 +( ($c >> 18)& 0x07 ) ).
	   chr( 0x80 +( ($c >> 12)& 0x3F ) ) ) ).
	   chr( 0x80 +( ($c >>  6)& 0x3F ) ) )
	). chr( 0x80 +(  $c & 0x3F ) ) );
  }

 2行めにある条件式を ( $c < 128 && $c != 0 ) にすると,C言語の ASCIZ 文字列内で「ヌル文字('¥0')」を扱う時にも使えるはず。

● JavaScript の場合

◆ 文字列→UNICODE(2020-10-31 更新)

 ある程度新しいブラウザなら,以下の関数が使えるもよう。

 以下,これらが使えない場合の回避関数。

 1文字だけの場合はこの辺りがシンプルかな。U+10000 以降のコードは,escape 関数により "%uXXXX%uYYYY" のサロゲートペアに直されることが前提。ただ,後半(YYYY)が 0xDC00~0xDFFF かどうかの確認は省略しているが。

▼ JavaScript で文字コードを得る
   function chcode( chr ){ // 1文字,U+10000 以降コード対応版
   var	ascii =' !"#$%&\'()*+,-./0123456789:;<=>?'+
   		'@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_'+
   		'`abcdefghijklmnopqrstuvexyz{|}~';
   var	c, d;
   	if( 0 <=(c = ascii.indexOf( chr ))) return( c + 32 );
   	  else { c = escape( chr );
   	  d = parseInt( c.substr( c.charAt(1)=='u'? 2: 1, 4 ), 16 );
   		if( (d & 0xFC00)== 0xD800 )
   		d =(((d & 0x3FF)+ 0x40)<< 10)+
   		   (parseInt( c.substr( 8 ), 16 )& 0x3FF);
   	  return( d );
   	  }
   }


© M.Ishikawa; TREEWARE 2021.