Upload
Download free for 30 days
Login
Submit search
濁点の話
3 likes
18,007 views
E
emasaka
Unicodeの濁点や半濁点の問題
Technology
Read more
1 of 16
Download now
Download to read offline
1
2
3
4
5
Most read
6
Most read
7
8
9
10
Most read
11
12
13
14
15
16
More Related Content
PDF
YJTC19 B-5 Kubernetesで実現したYahoo! JAPANの次世代開発環境 ~ 100以上のクラスタを少人数で運用する秘訣 ~ #yjtc
Yahoo!デベロッパーネットワーク
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
PDF
ノンプログラマーのためのjQuery入門
Hayato Mizuno
PDF
マイクロにしすぎた結果がこれだよ!
mosa siru
PDF
LINE LIVE のチャットが 30,000+/min のコメント投稿を捌くようになるまで
LINE Corporation
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
YJTC19 B-5 Kubernetesで実現したYahoo! JAPANの次世代開発環境 ~ 100以上のクラスタを少人数で運用する秘訣 ~ #yjtc
Yahoo!デベロッパーネットワーク
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
ノンプログラマーのためのjQuery入門
Hayato Mizuno
マイクロにしすぎた結果がこれだよ!
mosa siru
LINE LIVE のチャットが 30,000+/min のコメント投稿を捌くようになるまで
LINE Corporation
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
What's hot
(20)
PDF
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
PPTX
イベント・ソーシングを知る
Shuhei Fujita
PDF
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
PDF
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PDF
Cycloudのストレージ紹介と歴史
Hiroki Chinen
PDF
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
PDF
IaC事始め Infrastructure as Code やってみる?
大使 梶原
PDF
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PDF
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
PDF
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
PPTX
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
PPTX
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
Kaname Motoyama
PDF
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
PDF
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
PPTX
概念モデリング再入門 + DDD
Hiroshima JUG
PDF
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
イベント・ソーシングを知る
Shuhei Fujita
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
A AOKI
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Cycloudのストレージ紹介と歴史
Hiroki Chinen
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
IaC事始め Infrastructure as Code やってみる?
大使 梶原
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
スマートフォン向けサービスにおけるサーバサイド設計入門
Hisashi HATAKEYAMA
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
あなたのところに専用線が届くまで
Tomohiro Sakamoto(Onodera)
JJUGCCC2022spring_連続画像処理による位置情報計算を支えるマイクロサービスアーキテクチャ
Kaname Motoyama
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
概念モデリング再入門 + DDD
Hiroshima JUG
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
Ad
More from emasaka
(12)
PDF
ibus-skkをなんとかすっぺ会議
emasaka
PDF
GoBoLinuxを試した
emasaka
PDF
さくらのクラウドでh2oのベンチマーク
emasaka
PDF
みおぽん for CLI
emasaka
PDF
GNU make 4.0に何かいる
emasaka
PDF
メタメタプログラミングRuby
emasaka
PDF
長いの
emasaka
PDF
)の品格
emasaka
PDF
人力
emasaka
PDF
エコなWebサーバー
emasaka
PDF
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
PDF
Bash on Railsの逆襲
emasaka
ibus-skkをなんとかすっぺ会議
emasaka
GoBoLinuxを試した
emasaka
さくらのクラウドでh2oのベンチマーク
emasaka
みおぽん for CLI
emasaka
GNU make 4.0に何かいる
emasaka
メタメタプログラミングRuby
emasaka
長いの
emasaka
)の品格
emasaka
人力
emasaka
エコなWebサーバー
emasaka
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
Bash on Railsの逆襲
emasaka
Ad
Recently uploaded
(10)
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
PPTX
Vibe Codingを触って感じた現実について.pptx .
iPride Co., Ltd.
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
PDF
[email protected]
Matsushita Laboratory
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
Vibe Codingを触って感じた現実について.pptx .
iPride Co., Ltd.
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
[email protected]
Matsushita Laboratory
濁点の話
1.
濁点の話 emasaka
2.
7月にkoddolug MLに出したメール ● 「Linux User」C92版のレビューのとき ● これについて解説します ● 勝手にネタにしてすみません
>某氏 * (p.1)引用部分で、「で」「プ」「ぐ」「が」「ピ」がNFD(カナと濁点・ 半濁点が分かれている)形式になっています。印刷のとき大丈夫?
3.
濁点問題 ● Unicodeには濁点や半濁点のついた仮名の表し方 が2種類ある
4.
どういうことか ● この2つの「プ」は、実は別の文字 – (某氏の原稿をLibreOfficeで開いたところ)
5.
2種類の「プ」 ● U+30D7:「プ」の1文字分で表す – 合成済み文字 – この形式に揃えるのを「NFC(Normalization
Form Composition)」正規化という ● U+30D5 309A:「フ」と「゜」(相当)の2文字分のデータで 表す – 結合文字列 – この形式に揃えるのを「NFD(Normalization Form Decomposition)」正規化という – 通称「UTF8-MAC」
6.
NFCとNFD ● LinuxやWindowsではNFCが使われる ● Macのファイル名はNFDであるという問題が、しばしば話題にの ぼる – Macで作ったファイルをLinuxやWindowsで開くときや、MacでLinux由 来のツールを使うときなど – ちなみに最近のmacOS/iOSのAPFSではNFCに変わったらしい ● 実はファイル名だけでなく、テキストやワープロファイルの本文で も問題になる ● しかも正規化されておらず、合成済み文字と結合文字列が混在 する –
これが冒頭の「Linux User」での状態
7.
なぜ混在するか ● 自分の想像と聞いた話を総合するとたぶんこう – Mac上で日本語入力した文字は合成済み文字で入力 される – Mac上でほかのアプリ(Webブラウザーなど)からコピ ペした文字は結合文字列で入力される
8.
何が困るか ● 検索や置換で片方しかヒットしない ● Linux/Windowsの日本語処理系ソフトで結合文 字列だと正常に“その文字”として扱えなかったり ● アプリによって、結合文字列が合成済み文字と同じ ように表示されるものと、されないものがある – LibreOfficeなどでは同じように表示される
9.
ファイル名のNFD→NFC ● convmvで変更できる $ convmv -f
utf8 –-nfd -t utf8 –-nfc –notest *
10.
テキストファイル内容のNFD→NFC ● nkfやiconvで変更できる – ただしnkfはNFD→NFCの一方向のみ対応 $ nkf
--ic=utf8-mac --oc=utf-8 foo.txt > bar.txt $ iconv -f utf8-mac -t utf8 < foo.txt > bar.txt
11.
Emacsでは ● ucs-normalize-NFC-region(リージョンをNFC正 規化する)とucs-normalize-NFD-region(リージョ ンをNFD正規化する)の2つのコマンドがある ● よく使ってる
12.
Microsoft Word/LibreOffice Writer /Googleドキュメントでは? ● その機能はなさそう ● LibreOffice
mini Conference(openSUSE.Asia Summit 2017内)のときに聞いてみたが、やはりな さそう ● フォーマットを崩さずにNFC正規化できる機能がほ しい – LibreOfficeの拡張機能で作る?
13.
回避策的なツールを作った ● https://github.com/emasaka/docx-normarize-nfc ● まず.docx用 ● .docxをZIPファイルとして開き、コンテンツのXML ファイルをPythonでNFC正規化して書き戻すだけ
14.
中身はこれだけ #!/usr/bin/env python3 import sys,
io, os import unicodedata import zipfile import subprocess DOCUMENT = 'word/document.xml' docx = sys.argv[1] with zipfile.ZipFile(docx) as zf: with zf.open(DOCUMENT) as doc_bytes: doc = io.TextIOWrapper(doc_bytes, encoding='utf-8') document = doc.read() document_nfc = unicodedata.normalize('NFC', document) with open(os.devnull, 'w') as devnull: subprocess.call(['zip', '-d', docx, DOCUMENT], stdout=devnull) with zipfile.ZipFile(docx, 'a') as zf: zf.writestr(DOCUMENT, document_nfc)
15.
これから ● LibreOfficeの拡張機能を作る? ● でも正直、自分の中のプライオリティは高くない
16.
おまけの質問 ● ZIPファイルは圧縮形式として、デフォルトのdeflate のほか、BZipやLZMAなどの形式に対応している ● 質問:ODFやOpen XMLではどの形式に対応して いる?
Download