プロパティ

デフォルト無視文字

サポートしていないプロセスで目に見える効果なく無視できる文字で、異体字セレクター・ゼロ幅文字・言語タグなどが含まれます。

· Updated

What Are Default Ignorable Code Points?

A Default Ignorable Code Point is a character that should, by default, produce no visible glyph and no advance width when rendered. These characters exist to convey invisible semantic information—joining behavior, direction control, variation selection—without disturbing the visual flow of text when a renderer does not support them.

The rule is: if a process does not recognize or support a default ignorable character, it should silently discard it rather than display a replacement box (□) or a question mark. This allows documents using advanced Unicode features to degrade gracefully on older or simpler systems.

Important Default Ignorable Characters

Code Point Name Use
U+00AD SOFT HYPHEN (SHY) Line-break hint; invisible unless break occurs
U+034F COMBINING GRAPHEME JOINER Prevents canonical reordering
U+200B ZERO WIDTH SPACE Line-break opportunity with no width
U+200C ZERO WIDTH NON-JOINER (ZWNJ) Prevents cursive joining in Arabic/Persian
U+200D ZERO WIDTH JOINER (ZWJ) Forces cursive joining; used in emoji sequences
U+2060 WORD JOINER Like NBSP but with no width
U+2061–U+2064 Function Application, etc. Mathematical invisible operators
U+FE00–U+FE0F Variation Selectors 1–16 Select text vs. emoji presentation
U+E0000–U+E01EF Tags Language tags (now largely deprecated)
# ZWJ is used to combine emoji into sequences
family_emoji = "\U0001F468\u200D\U0001F469\u200D\U0001F467"
# MAN + ZWJ + WOMAN + ZWJ + GIRL = 👨‍👩‍👧

print(len(family_emoji))           # 5 code points (including 2 ZWJ)
print(family_emoji)                # Renders as single family emoji on supported systems

# ZWNJ prevents Arabic ligature formation
# ك + ZWNJ + ا → kaf and alef do NOT join
# ك + ا           → normal: join into ـكا

# Soft hyphen: invisible but marks a valid break point
word = "antidis\u00ADestablishment\u00ADarianism"
print(word)     # Visible on most renderers without hyphens
print(len(word))  # 27 code points including 2 SHY

Testing for Default Ignorable

The Unicode property Default_Ignorable_Code_Point (DI) is a derived property. Characters with DI=Yes form a set that includes not just control and format characters but also many reserved code points in the Specials and Tag blocks.

# Using the 'regex' package for property-based matching
import regex
di_pattern = regex.compile(r'\p{Default_Ignorable_Code_Point}')

test = "Hello\u200BWorld"   # contains ZWSP
matches = di_pattern.findall(test)
print(f"Found {len(matches)} default ignorable character(s)")
# Found 1 default ignorable character(s)

Quick Facts

Property Value
Unicode property name Default_Ignorable_Code_Point
Short alias DI
Type Boolean
Expected renderer behavior Produce no glyph, no width
Key characters ZWJ (U+200D), ZWNJ (U+200C), VS1–VS16, SHY
Python built-in No direct support; use regex package
Spec reference Unicode Standard Section 5.21, DerivedCoreProperties.txt

関連用語

プロパティ のその他の用語

Age プロパティ

文字が最初に割り当てられたUnicodeバージョン。システムやソフトウェアバージョン間での文字サポートを判断するのに役立ちます。

East Asian Width

Unicode property (UAX#11) classifying characters as Narrow, Wide, Fullwidth, Halfwidth, Ambiguous, or …

Joining Type

Unicode property controlling how Arabic and Syriac characters connect to adjacent characters. …

Script Extensions

Unicode property listing all scripts that use a character, broader than the …

ケースマッピング

文字を大文字・小文字・タイトルケースに変換するルール。ロケール依存の場合があり(トルコ語のI問題)、1対多のマッピングもあります(ß → SS)。

スクリプト

文字が属する文字体系(例:ラテン、キリル、漢字)。Unicode 16.0は168個のスクリプトを定義し、Scriptプロパティはセキュリティと混在スクリプト検出に重要です。

ブロック

名前付きの連続したコードポイント範囲(例:基本ラテン = U+0000〜U+007F)。Unicode 16.0は336個のブロックを定義し、すべてのコードポイントはちょうど1つのブロックに属します。

ミラープロパティ

RTLコンテキストでグリフを水平に反転すべき文字。例:( → )、[ → ]、{ → }、« → »。

一般カテゴリー

すべてのコードポイントを30個のカテゴリ(Lu・Ll・Nd・Soなど)の1つに分類する体系で、7つの主要クラス(文字・記号・数字・句読点・記号・区切り・その他)にグループ化されています。

互換等価

同じ抽象的内容を持つが外観が異なる場合がある2つの文字シーケンス。正規等価より広い概念。例:fi ≈ fi、² ≈ 2。