/
734.txt
376 lines (288 loc) · 12.4 KB
/
734.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
[REFS[
- [2] [CODE(charname)@en[LINE SEPARATOR]]
<https://chars.suikawiki.org/char/LINE%20SEPARATOR>
- [23] [CODE(charname)@en[PARAGRAPH SEPARATOR]]
<https://chars.suikawiki.org/char/PARAGRAPH%20SEPARATOR>
]REFS]
* 仕様書
[REFS[
- [18] [CITE[The Unicode Standard, Version 13.0 - ch23.pdf]], [TIME[2020-03-09T17:53:52.000Z]], [TIME[2020-12-09T10:59:29.820Z]] <https://www.unicode.org/versions/latest/ch23.pdf#G15334>
]REFS]
* 意味
[26]
[CODE[U+2028]] [CODE(charname)@en[LINE SEPARATOR]]
と
[CODE[U+2029]] [CODE(charname)@en[PARAGRAPH SEPARATOR]]
は、
[[Unicode]] [[平文]]において[[行]]の境界と[[段落]]の境界を示す[RUBYB[既定の形][default form]]と考えられるもの
[SRC[>>18]]
と説明されています。
[25]
[CITE[The Unicode Standard]]
では
[CODE(char)[U+2028]]
と
[CODE(char)[U+2029]]
は、
[RUBYB[曖昧でない文字][unambiguous characters]]と説明されています
[SRC[>>18]]。
何が曖昧でないのか曖昧な説明ですがw、
混乱していた[[改行文字]]の問題を解決しようと試みたものなのでしょう。
「既定の形」
という言葉に現れている通り、
既存の[[制御文字]]ではなく、
[CODE[U+2028]]
と
[CODE[U+2029]]
を使うのが
[[Unicode]]
設計当初の[[プレインテキスト]]のあるべき姿だったのでしょう。
[27]
[CODE[U+2028]]
の後から新しい[[行]]が始まります。
無条件に[[行]]を終わらせることを意味します。
[SRC[>>18]]
[28]
[CODE[U+2029]]
の後から新しい[[段落]]が始まります。
[SRC[>>18]]
[29]
[CODE[U+2028]],
[CODE[U+2029]]
は分離子なので、最初や最後には不要です。
[SRC[>>18]]
* レンダリング
[30]
[RUBYB[段落間の書式付け][interparagraph formatting]]は、
任意の方法によることができます。
例えば[[行]]を改め、
[[段落]]間の[RUBYB[行送り][line spacing]]を挿入し、
最初の[[行]]を[[インデント]]することができます。
[SRC[>>18]]
[31]
[CODE[U+2028]]
は[[改行]]するべきことを示します。
[[段落]]は始めませんから、
[[段落]]間の行送りや[[インデント]]は適用しません。
[SRC[>>18]]
-*-*-
[32]
確かに多くのシステムで[[改行]]と[[改段落]]の2つの概念はありますが、
一方又は両方が存在しないシステムや、
3つ以上の区別を持つシステムも少なくありません。
また[[改行]]の効果は明らかですが、
[[改段落]]の解釈と[[レンダリング]]には多種多様なものがあります。
この2つの区別を[[文字]]として記述しようとしたのは非常に意欲的といえますが、
勇み足とも思えます。
[33]
事実これらはほとんど使われていないか、少なくても[[相互運用性]]は極めて低いと言わざるを得ません。
[[Web]]
で見られる用例のほとんどは誤用か、意図せぬ混入と思われるものです。
しかも[[プラットフォーム]]によっては[[制御文字]]の可視化風に表示されてしまい、
意図した効果はまったく得られません。
[34]
[[段落分離子]]は、[[改行]]なしで「¶」や「◆」で表す手法もあるくらいですから、
「PS」 のように表示されたとしても「任意の方法」 (>>30) に過ぎないのかもしれませんがw、
[[行分離子]]が「[LINES[L][SEP]]」のように表示されるのは、
対応しているとはとてもいえません。
[35]
結局この2つの[[文字]]は混乱する[[改行文字]]の問題に新たな爆弾を投げ込んだだけでした。
* 互換性の問題
[36]
[[XML文書]]の[[改行]]の正規化処理において、
[[XML 1.0]]
は
[CODE[U+2028]]
を扱っていませんでしたが、
[[XML 1.1]]
は
[CODE[U+2028]]
を[[改行]]とみなすように変更しました。
これは他の[[改行文字]]である
[CODE[U+0085]]
ととともに
[[XML 1.1]]
の目玉の1つで、焦点となって紛糾した問題でもありました。
この変更は、
[[XML 1.1]]
の事実上の後継である
[[XML 1.0 5e]]
で不採用となり、
失敗した
[[XML 1.1]]
と共に闇に葬られました。
[37]
[CODE[U+2028]],
[CODE[U+2029]]
は[[改行]]、
[[改段落]]という特殊性ゆえに、
[[JavaScript]]
の構文上も特別な扱いを受けていました。
それが原因となり、
[[JavaScript]]
から派生した
[[JSON]]
はこの2つの[[文字]]の扱いが
[[JavaScript]]
と違ってしまっていました。
そのため
[[JavaScript]],
[[JSON]],
[[JSONP]]
の間の互換性問題を引き起こし、
[[Web開発者]]を悩ませ続けました。
[[セキュリティー]]問題を引き起こす原因ともなりました。
[SEE[ [[JSON]], [[JSONP]] ]]
* [CODE(charname)@en[LINE SEPARATOR]] の混入事例
[3] (多分意図せず) 普通の文章に混在していることがよくあります。積極的に使うツールか何かがあるのでしょうか。
[TIME[2015-12-18T08:39:10.100Z]]
[FIG(quote)[
[FIGCAPTION[
[4] [CITE@ja[【京都】デートや一人旅におすすめ!お寺以外の京都の観光スポットを厳選して紹介する - Hikikomotrip]]
([TIME[2016-03-27 22:08:22 +09:00]] 版)
<http://www.hikikomotrip.com/entry/kyoto>
]FIGCAPTION]
> 営業時間:AM10:00~PM7:00
(定休日はございません)
]FIG]
[FIG(quote)[
[FIGCAPTION[
[5] [CITE@ja[つるの剛士 公式ブログ - 一ヶ月の家庭休業(育休)を終えて。 - Powered by LINE]]
( ([TIME[2016-07-01 13:42:27 +09:00]]))
<http://lineblog.me/tsurunotakeshi/archives/7833504.html>
]FIGCAPTION]
> 毎日が目まぐるしく過ぎていった一ヶ月。
>
完全に家の中が中心になりエプロンが私服、戦闘服と化した一ヶ月。
>
気づいたら一度もヘアセット、コンタクトレンズをしなかった一ヶ月。
>
殆ど人にも会わず毎日家族と一緒だった一ヶ月。。
> 今は早く仕事したい気持ちと正直寂しい気持ちとで心中裏腹です。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[6] [CITE@ja[iMac OSX10.12.2 Sierraです。 Mail.appとApp Storeを起… - 人力検索はてな]]
([TIME[2017-01-01 15:48:57 +09:00]])
<http://q.hatena.ne.jp/1483177683>
]FIGCAPTION]
> iMac OSX10.12.2 Sierraです。
>
> Mail.appとApp Storeを起動して、
]FIG]
[7] >>6 質問文の改行前後に謎の [CODE[U+2028]] が入っています。
[8] [CITE@ja[はてな]] ([TIME[2017-01-01 15:50:39 +09:00]]) <http://www.hatena.ne.jp/#s-question>
は [[JSONP]] で
([TIME[2017-01-01 15:51:06 +09:00]]) <http://q.hatena.ne.jp/api/hotlist?_via=250002&cnt=8&callback=PortalQuestionCallback>
を読み込んでいますが、 [[JSON]] では認められていて [[JavaScript]]
では認められない [CODE[U+2028]] が混入し、 [[JavaScript]] [[構文解析エラー]]になっているようです。
[FIG(quote)[
[FIGCAPTION[
[9] [CITE@ja[FAQ | MTRL KYOTO(マテリアル京都)]]
([TIME[2017-03-07 12:34:20 +09:00]])
<https://mtrl.net/kyoto/faq/>
]FIGCAPTION]
> 対応素材について
> 弊施設設置のCNCフライスではさまざまな木材やワックス・MDF・アルミ・プラスチックなどの素材が使用可能です。
]FIG]
[10] [CITE@en[Mackerelによる
簡単サーバー管理入門と発展形]] ([TIME[2017-05-10 15:23:56 +09:00]]) <https://www.slideshare.net/stanaka/140929mackerel>
[FIG(quote)[
[FIGCAPTION[
[11] [CITE[五條真由美|Love&Light]]
([TIME[2017-03-05 19:59:12 +09:00]])
<http://loveandlight.jpn.com/management/index.html>
]FIGCAPTION]
> J-POPアーティストのコーラスを経てTVアニメ「おジャ魔女どれみ」(99'東映アニメーション)の挿入歌「魔法でチョイチョイ」でデビュー。
> その後「ふたりはプリキュア」(ABC・テレビ朝日系)主題歌“DANZEN!ふたりはプリキュア” に恵まれ、同シリーズの主題歌・エンディング・挿入歌を数多歌わせていただく。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[12] [CITE[SINGHA Chiang Rai International MTB Challenge | R1japan.jp]]
([TIME[2017-12-08 17:19:53 +09:00]])
<http://www.r1japan.jp/project/chiangrai-mtb/chiangrai-mtb6.html>
]FIGCAPTION]
> 電話053-705337
>
40 Moo 6 Ban Paoo Nanglae Chiangrai Nothern Thailand
]FIG]
[FIG(quote)[
[FIGCAPTION[
[13] [CITE@ja-JP[猪鹿蝶とは?|ナレーター猪鹿蝶]]
([TIME[2017-12-27 02:38:19 +09:00]])
<http://inoshikacho.axto.jp/about_us.html#gaiyou>
]FIGCAPTION]
> マネージャー狩野貴子率いるナレーターオフィスです。
国民的ナレーターである生野文治を筆頭に、佐藤賢治、服部伴蔵門などバラエティ番組の顔となったナレーターたち。さらに小野寺一歩、大江戸よし々など若手ナレーターを第一線へ送り込んでいます。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[14] [CITE@ja[日本円出金の再開の見通しについて | コインチェック株式会社]]
([TIME[2018-02-03 13:23:14 +09:00]])
<http://corporate.coincheck.com/2018/02/03/37.html>
]FIGCAPTION]
> Plans for resuming JPY withdrawals
> [SNIP[]], we would like to announce the timeframe when JPY withdrawals will resume.
Currently, all JPY registered to customer accounts is being stored in a customer-specific account in a major financial institution.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[15] [CITE@ja-jp[【豪華ゲスト多数出演】「#コンパス」ステージ@闘会議2018'''['''DAY1''']''' - 2018/02/10 10:15開始 - ニコニコ生放送]]
([TIME[2018-02-10 01:49:23 +09:00]])
<http://live.nicovideo.jp/gate/lv309287381>
]FIGCAPTION]
>
大炎上 #コンパスグランドスラム 野良バトグランプリ開催!
>
]FIG]
[16] [CITE[データ分析コンテストの
勝者解答から学ぶ // Speaker Deck]]
([TIME[2018-03-04 14:54:45 +09:00]])
<https://speakerdeck.com/smly/detafen-xi-kontesutofalse-sheng-zhe-jie-da-karaxue-bu>
[FIG(quote)[
[FIGCAPTION[
[17] [CITE@ja-jp[Hi!Superbの『Hi!SuPunch!!(ハイシュパンチ)』#01 - 2018/04/07 22:00開始 - ニコニコ生放送]]
([TIME[2018-04-07 00:25:01 +09:00]])
<http://live.nicovideo.jp/gate/lv312272524>
]FIGCAPTION]
> チケットを入手する
> チャンネルへ入会 または 生放送チケット購入
> Hi!Superbの『Hi!SuPunch!!(ハイシュパンチ)』#01
>
>
●番組内容
>
LOVE&ARTから
]FIG]
[FIG(quote)[
[FIGCAPTION[
[24] [CITE@ja[一般データ保護規則(GDPR)- Google Cloud]]
([TIME[2017-11-03 04:30:00 +09:00]])
<https://www.google.com/intl/ja/cloud/security/gdpr/>
]FIGCAPTION]
> G Suite と Google Cloud Platform の
GDPR に対する取り組み
]FIG]
[FIG(quote)[
[FIGCAPTION[
[19] [CITE@ja-jp[Hi!Superbの『Hi!SuPunch!!(ハイシュパンチ)』#02 - 2018/05/05 22:00開始 - ニコニコ生放送]]
([TIME[2018-05-05 00:24:30 +09:00]])
<http://live.nicovideo.jp/gate/lv312791656>
]FIGCAPTION]
> Hi!Superbの『Hi!SuPunch!!(ハイシュパンチ)』#02
>
>
●番組内容
>
LOVE&ARTから新たにデビューしたDance&Vocalグループ
]FIG]
[FIG(quote)[
[FIGCAPTION[
[20] [CITE@ja[プロフィール | 参議院議員 中曽根弘文]]
([TIME[2018-06-07 18:55:08 +09:00]])
<http://hiro-nakasone.com/profile/>
]FIGCAPTION]
> 自民党の新憲法案の作成に尽力した。
「サマータイム制度」の導入推進運動の中心的役割を果たすとともに、
]FIG]
[FIG(quote)[
[FIGCAPTION[
[22] [CITE[『ありの巣ちゃんねるっ』 - 2020/12/04(金) 17:00開始 - ニコニコ生放送]]
([TIME[2020-12-03 19:55:15 +09:00]])
<https://live2.nicovideo.jp/watch/lv329268625?ref=qtimetable&zroute=index>
]FIGCAPTION]
> @ほぉ〜むカフェ 大阪本店 みらんです
>
> 配信系は初めての挑戦なので、ガッツで頑張りますっ!
]FIG]
* メモ
[1] [CITE[IRC logs: freenode / #whatwg / 20101111]]
( ([TIME[2010-11-19 23:02:05 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20101111#l-281>
[21] [CITE@en['''['''css-text''']''' Control characters · Issue #1990 · w3c/csswg-drafts]]
([TIME[2018-10-19 01:45:00 +09:00]])
<https://github.com/w3c/csswg-drafts/issues/1990>