プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
UTF-8、Shift_JIS、JIS、EUC、Unicode、UCS、サロゲートペア、コードポイント、文字コード判定、
合成文字、ソート、TRON、外字コード、その他について語り合いましょう。
各言語での文字列の扱いについての質問もOKです。
基本マッターリ、ささ、茶でもどうぞ。
■過去スレ
文字コード総合スレ part1 http://pc11.2ch.net/test/read.cgi/tech/1031028205/
文字コード総合スレ part2 http://pc11.2ch.net/test/read.cgi/tech/1143375639/
文字コード総合スレ part3 http://pc11.2ch.net/test/read.cgi/tech/1180250376/
文字コード総合スレ part4 http://pc11.2ch.net/test/read.cgi/tech/1228052369/
(スレ再利用)UnicodeとUTF-8の違いは? http://pc12.2ch.net/test/read.cgi/tech/1177930957/
(隔離スレ)UnicodeとUTF-8の違いは? その2 http://pc12.2ch.net/test/read.cgi/tech/1274937437/
文字コード総合スレ part5 http://pc12.2ch.net/test/read.cgi/tech/1236529563/
文字コード総合スレ part6 http://hibari.2ch.net/test/read.cgi/tech/1278923059/
文字コード総合スレ part7 http://toro.2ch.net/test/read.cgi/tech/1306595564/
文字コード総合スレ part8 http://peace.2ch.net/test/read.cgi/tech/1354248962/
文字コード総合スレ part9 http://peace.2ch.net/test/read.cgi/tech/1401301779/
文字コード総合スレ Part10 http://mevius.2ch.net/test/read.cgi/tech/1444822140/
文字コード総合スレ Part11 http://mevius.5ch.net/test/read.cgi/tech/1516629503/
探検
文字コード総合スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/12/17(月) 16:48:24.47ID:Pfqpaohb628デフォルトの名無しさん
2021/03/19(金) 00:37:01.06ID:pLBLA8wx ゴメンなさい、最後の一文は
コピペしてテキストをマージすることもある、の意です
コピペしてテキストをマージすることもある、の意です
629デフォルトの名無しさん
2021/03/19(金) 01:21:48.92ID:hh9Kt8XT Windowsは表面的にはシフトJISですが、内部はUTF-16です。
メモ帳がBOM付きUTF-8に対応したりとしているので、UTF-8でも特に問題ありません。
テキストエディタやOffice製品でSJISが使えなくなることは、想定しなくてもいいと思います。
メモ帳がBOM付きUTF-8に対応したりとしているので、UTF-8でも特に問題ありません。
テキストエディタやOffice製品でSJISが使えなくなることは、想定しなくてもいいと思います。
630デフォルトの名無しさん
2021/03/19(金) 01:23:29.57ID:hh9Kt8XT 日本語の世界でSJISがなくなることは想定しなくてよいという意味です。
631デフォルトの名無しさん
2021/03/19(金) 06:55:45.01ID:MDPOlxpG632デフォルトの名無しさん
2021/03/19(金) 07:01:30.18ID:pLBLA8wx633デフォルトの名無しさん
2021/03/19(金) 07:03:11.89ID:pLBLA8wx >>631
いや、絵文字は一生使うつもりがありませんw
いや、絵文字は一生使うつもりがありませんw
634デフォルトの名無しさん
2021/03/19(金) 07:53:48.58ID:/oetvOh6 自分自身が絵文字を使うかどうかは重要じゃなくて、他人の書いた絵文字を含む文書を劣化させずに保存できることが重要
>>631
絵文字は不要、誰が絵文字なんかを文字コードの中に押し込んだんだ?
絵文字は不要、誰が絵文字なんかを文字コードの中に押し込んだんだ?
636デフォルトの名無しさん
2021/03/19(金) 08:45:35.33ID:pPRPone1637デフォルトの名無しさん
2021/03/19(金) 09:58:34.93ID:n/AYlKWK638デフォルトの名無しさん
2021/03/19(金) 13:03:56.18ID:eiJMVgO4 最初にコード化したのは誰かって意味ならワープロメーカーとかじゃね?
unicodeに入れたのはgoogle。
その元になった絵文字セットのうちの1つを最初に作ったのはドコモ
unicodeに入れたのはgoogle。
その元になった絵文字セットのうちの1つを最初に作ったのはドコモ
639デフォルトの名無しさん
2021/03/19(金) 14:00:06.98ID:D6AA0Wwh MSが何を考えているか外からではわからないけど
S-JISは切り捨てる可能性があるんじゃないかな
S-JISは切り捨てる可能性があるんじゃないかな
640デフォルトの名無しさん
2021/03/19(金) 14:15:07.57ID:/oetvOh6641デフォルトの名無しさん
2021/03/19(金) 15:26:48.13ID:eiJMVgO4 >>633
macだとcuiでも絵文字使ってるプログラムが増えてて、見やすいしわりと便利よ
macだとcuiでも絵文字使ってるプログラムが増えてて、見やすいしわりと便利よ
642デフォルトの名無しさん
2021/03/19(金) 16:19:10.35ID:MDPOlxpG Powerlineとかのプログラミング用の絵文字
あれUnicodeに入れてくれないかな?
あれUnicodeに入れてくれないかな?
644デフォルトの名無しさん
2021/03/19(金) 17:45:59.37ID:hh9Kt8XT Unicodeの絵文字は全世界で使われているからね。
645デフォルトの名無しさん
2021/03/19(金) 17:46:52.40ID:hh9Kt8XT 日本の絵文字がベースだから、日本人っぽいものが多い。
646デフォルトの名無しさん
2021/03/19(金) 18:07:03.09ID:/oetvOh6647デフォルトの名無しさん
2021/03/19(金) 22:38:34.45ID:pLBLA8wx あのう…、皆さん色々ありがとうございます
それで…、結局のところ私は…、これから先テキストを新しく書いた時に
そのテキストデータの文字コードを何にして保存すれば良いのでしょうか?
それで…、結局のところ私は…、これから先テキストを新しく書いた時に
そのテキストデータの文字コードを何にして保存すれば良いのでしょうか?
648デフォルトの名無しさん
2021/03/19(金) 23:10:26.99ID:gtzZCHhj 何回も何回も裏切られてきたからな
一寸先は闇
UTFが優勢ではあるけど
何があるかわからん
一寸先は闇
UTFが優勢ではあるけど
何があるかわからん
>>647
BOM 付きUTF-8 でいいんじゃないでしょうか…
BOM 付きUTF-8 でいいんじゃないでしょうか…
650デフォルトの名無しさん
2021/03/20(土) 00:19:36.84ID:4rbcgKwq 異体字セレクタは無視可能だから>>643みたいな対比が重要な用途には向かん
651デフォルトの名無しさん
2021/03/20(土) 03:11:58.85ID:D8GShjRw >>649
UTF8 に BOM はいらんだろ。(原理主義)
UTF8 に BOM はいらんだろ。(原理主義)
652デフォルトの名無しさん
2021/03/20(土) 03:46:25.95ID:XiFOMzCU >>647
文字コードはなんでもいいので、...を空文字列に置換してから保存してください
文字コードはなんでもいいので、...を空文字列に置換してから保存してください
653デフォルトの名無しさん
2021/03/20(土) 04:03:35.66ID:HNARUvnS >>651
627のwindowsでの質問なのでbom付きのが良い
627のwindowsでの質問なのでbom付きのが良い
654デフォルトの名無しさん
2021/03/20(土) 06:00:23.16ID:fwPpsQIN BOM付きはエラーの原因になったりするんだよね
647レベルだと恐らく原因にたどり着けない
647レベルだと恐らく原因にたどり着けない
655デフォルトの名無しさん
2021/03/20(土) 12:04:30.81ID:OmO/62/g 個人用なら UTF8一択でいいよ
ただし、以下が注意かな
1. 納品先、提出先の指定、プロジェクトでの指定があるなら合わせる
2. UTF8に対応していない古いツール類(エディタ含む)を使って処理しているなら合わせる
ただし、以下が注意かな
1. 納品先、提出先の指定、プロジェクトでの指定があるなら合わせる
2. UTF8に対応していない古いツール類(エディタ含む)を使って処理しているなら合わせる
656デフォルトの名無しさん
2021/03/20(土) 13:21:00.17ID:N0CH58op >>654
エラーの原因になるというか、そのソフトがUTF8シグネチャに対応してないってだけだな。
結局のところ使うソフトや環境次第。
WindowsメインならUTF8シグネチャ付きの方がトラブルは少ないだろう。
エラーの原因になるというか、そのソフトがUTF8シグネチャに対応してないってだけだな。
結局のところ使うソフトや環境次第。
WindowsメインならUTF8シグネチャ付きの方がトラブルは少ないだろう。
657デフォルトの名無しさん
2021/03/20(土) 14:11:52.17ID:IyzEzHor BOM なしUTF-8(UTF-8N)が良い
Windows と言っても、WSL でLinux を使うかも知れないから、
BOMを付けると、動かないかも
Windows と言っても、WSL でLinux を使うかも知れないから、
BOMを付けると、動かないかも
658デフォルトの名無しさん
2021/03/20(土) 14:43:30.24ID:ATRyxlqT winにはofficeとか、utf-8でもbomがないと化けるメジャーソフトもあるんだよなあ
659ID:pLBLA8wx
2021/03/20(土) 17:23:15.32ID:kRdQNH2J 皆さん本当に色々とありがとうございました!
出てくる単語を片っ端からググって再確認しつつ、もっとも普遍的原理的な
考え方を自分の頭の中で屁理屈として組み立てあげました!
結論:これから私は、書いたテキストを原則UTF-8で保存する
(→必要に応じてBOMをつけて保存し使うこともある)
本当に勉強になりました。2日で10年分(か20年分)勉強した感じですw。
出てくる単語を片っ端からググって再確認しつつ、もっとも普遍的原理的な
考え方を自分の頭の中で屁理屈として組み立てあげました!
結論:これから私は、書いたテキストを原則UTF-8で保存する
(→必要に応じてBOMをつけて保存し使うこともある)
本当に勉強になりました。2日で10年分(か20年分)勉強した感じですw。
660デフォルトの名無しさん
2021/03/20(土) 18:05:23.87ID:fwPpsQIN もつかれ
661デフォルトの名無しさん
2021/03/21(日) 02:58:59.19ID:Hmh4/82J UTF8はBOMがないのが正式。規格書嫁。
BOMが付くのは他の文字コードから変換の時に頭悪いソフトが削り損ねたか、
メモ帳のように文字コード対応が不完全なソフトが、独自の文字コード判別機能のために規格無視で突っ込んだ
くらい。
BOMが付くのは他の文字コードから変換の時に頭悪いソフトが削り損ねたか、
メモ帳のように文字コード対応が不完全なソフトが、独自の文字コード判別機能のために規格無視で突っ込んだ
くらい。
662デフォルトの名無しさん
2021/03/21(日) 08:53:26.10ID:nNrBMbyx BOMはオプション的な扱いだけど正式なRFCの仕様だが?
プロトコルとして文字コードを決め打ちする場合とか他の方法で文字コードを受け渡す
仕組みがある場合はBOMを使用すべきではないというくらい。
そもそも「文字コード対応が不完全なソフト」って、UTF-8決め打ちのソフトのことじゃね?
プロトコルとして文字コードを決め打ちする場合とか他の方法で文字コードを受け渡す
仕組みがある場合はBOMを使用すべきではないというくらい。
そもそも「文字コード対応が不完全なソフト」って、UTF-8決め打ちのソフトのことじゃね?
663デフォルトの名無しさん
2021/03/21(日) 10:07:00.18ID:ZMzh4Q+Z >>661
UTF-8のBOMがなかったら以前の文字コード(日本だったらSJIS)とUTF-8の区別がつかないんだよ。
UTF-16やUTF-32なら1バイト単位で見た時にNULL文字が多数登場するという特徴があるが
UTF-8はバイト列をフルに使って詰め込んでるから区別することが不可能
UTF-8のBOMはUTF-8とそれ以外の文字コードを区別するための機能
昔は文字コードが自動判定できてたって?それはSJISとEUC-JPみたいに
バイト列をフルに使ってない文字コードかつ、日本語しか考慮してないから
できてたことなんだよ。UTF-8とそれ以外の文字コード判別は無理
UTF-8のBOMがなかったら以前の文字コード(日本だったらSJIS)とUTF-8の区別がつかないんだよ。
UTF-16やUTF-32なら1バイト単位で見た時にNULL文字が多数登場するという特徴があるが
UTF-8はバイト列をフルに使って詰め込んでるから区別することが不可能
UTF-8のBOMはUTF-8とそれ以外の文字コードを区別するための機能
昔は文字コードが自動判定できてたって?それはSJISとEUC-JPみたいに
バイト列をフルに使ってない文字コードかつ、日本語しか考慮してないから
できてたことなんだよ。UTF-8とそれ以外の文字コード判別は無理
665デフォルトの名無しさん
2021/03/21(日) 10:46:26.36ID:Hmh4/82J 規格はちゃんと読めとしか。
例えば Unicode 13.0 での扱いは
1) U+FEFF は基本は Zero Width Non-Breaking Space
2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
3) Unicode Signature としても使用できるが、プロトコルが型無しの場合に使用し、それ以外では使用を推奨しない
という扱いだ。1) と 2) と 3) は別の使い方だと理解するところから始めろ
UTF-8 でも 1) は普通に使える、2)としては使用できない、3)はプロトコル次第(HTTPだと非推奨、FTPだと可)
UTF-16 から UTF-8 に変換する時は 1) の意味なら残す、2) の意味なら削る、3) の意味ならプロトコル次第。
不明ならば基本の 1) を仮定して残すのが正しい実装だ。
例えば Unicode 13.0 での扱いは
1) U+FEFF は基本は Zero Width Non-Breaking Space
2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
3) Unicode Signature としても使用できるが、プロトコルが型無しの場合に使用し、それ以外では使用を推奨しない
という扱いだ。1) と 2) と 3) は別の使い方だと理解するところから始めろ
UTF-8 でも 1) は普通に使える、2)としては使用できない、3)はプロトコル次第(HTTPだと非推奨、FTPだと可)
UTF-16 から UTF-8 に変換する時は 1) の意味なら残す、2) の意味なら削る、3) の意味ならプロトコル次第。
不明ならば基本の 1) を仮定して残すのが正しい実装だ。
666デフォルトの名無しさん
2021/03/21(日) 11:32:14.01ID:nNrBMbyx >1) U+FEFF は基本は Zero Width Non-Breaking Space
「本来は〜だった。」が正しいだろうな。
その意味で解釈するのはストリームの先頭以外に現れた場合に限るとされているし
今ではその意味でも使用すべきではないということになった。
>2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
RFCで言う"BOM"にはバイトオーダーマークとシグネチャの両方の機能があって、
バイトオーダーマークとしての意味はUTF-16やUTF-32だけだけれども
シグネチャとしての意味はUTF-8でも有効だと書いてあるだろう。
「本来は〜だった。」が正しいだろうな。
その意味で解釈するのはストリームの先頭以外に現れた場合に限るとされているし
今ではその意味でも使用すべきではないということになった。
>2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
RFCで言う"BOM"にはバイトオーダーマークとシグネチャの両方の機能があって、
バイトオーダーマークとしての意味はUTF-16やUTF-32だけだけれども
シグネチャとしての意味はUTF-8でも有効だと書いてあるだろう。
667デフォルトの名無しさん
2021/03/21(日) 12:02:55.18ID:Hmh4/82J 最新規格でも ZWNBS が正式。BOM は例外的な使用法。
「だった」って過去形で主張するんなら規格のどこに過去形書いてあるか、どの規格で廃止されたか示してみろ。
カタカナでバイトオーダーマークって書いても誤魔化せないぞ。
「だった」って過去形で主張するんなら規格のどこに過去形書いてあるか、どの規格で廃止されたか示してみろ。
カタカナでバイトオーダーマークって書いても誤魔化せないぞ。
668ID:pLBLA8wx
2021/03/21(日) 13:46:50.50ID:hcZhKSEU けんかをやめて 二人をとめて
私のためにBOMで争わないで もうこれ以上
私のためにBOMで争わないで もうこれ以上
669デフォルトの名無しさん
2021/03/21(日) 14:28:20.22ID:nNrBMbyx ああそうだな。文字の定義自体は変わっていないからその意味では過去形はおかしかったかな。
ただRFC3629では、今は同じ意味のU+2060があるからそっちを使うことを「強く推奨する」と。
ただRFC3629では、今は同じ意味のU+2060があるからそっちを使うことを「強く推奨する」と。
670デフォルトの名無しさん
2021/03/21(日) 15:38:22.99ID:ahwL4b0J https://www.unicode.org/charts/PDF/UFE70.pdf
>may be used to detect byte order by contrast with the noncharacter code point FFFE
>use as an indication of non-breaking is deprecated; see 2060 instead
non-breakingとして使うのはdeprecatedだと言ってるし過去形でいいんじゃね
BOMとしての使い道だけが残った
>may be used to detect byte order by contrast with the noncharacter code point FFFE
>use as an indication of non-breaking is deprecated; see 2060 instead
non-breakingとして使うのはdeprecatedだと言ってるし過去形でいいんじゃね
BOMとしての使い道だけが残った
671デフォルトの名無しさん
2021/03/21(日) 23:32:21.54ID:ZMzh4Q+Z > UTF-8 でも 1) は普通に使える、2)としては使用できない、3)はプロトコル次第(HTTPだと非推奨、FTPだと可)
Byte Order Markの意味わかってんのか?
UTF-8は1バイト単位で扱う文字列なんだから、2として使い方に
意味がないのは当たり前だろ。使えないというより意味がない
使っては駄目という意味じゃない。使ってもいいが本来の意味がないというだけだ。
16bitまたは32bitのときの順番を判断するためにあるのに
Byte(バイト) Order(順番) Mark(記号)
つまりU+FEFFは「文章のどこでも使っていい文字」で
先頭に来た場合に限りBOMとして解釈するというだけだ
Byte Order Markの意味わかってんのか?
UTF-8は1バイト単位で扱う文字列なんだから、2として使い方に
意味がないのは当たり前だろ。使えないというより意味がない
使っては駄目という意味じゃない。使ってもいいが本来の意味がないというだけだ。
16bitまたは32bitのときの順番を判断するためにあるのに
Byte(バイト) Order(順番) Mark(記号)
つまりU+FEFFは「文章のどこでも使っていい文字」で
先頭に来た場合に限りBOMとして解釈するというだけだ
672デフォルトの名無しさん
2021/03/23(火) 08:39:38.88ID:VNfq1a/Y Can a UTF-8 data stream contain the BOM character (in UTF-8 form)? If yes, then can I still assume the remaining UTF-8 bytes are in big-endian order?
http://www.unicode.org/faq/utf_bom.html#bom5
Yes, UTF-8 can contain a BOM. However, it makes no difference as to the endianness of the byte stream.
UTF-8 always has the same byte order. An initial BOM is only used as a signature - an indication that an otherwise unmarked text file is in UTF-8.
Note that some recipients of UTF-8 encoded data do not expect a BOM.
Where UTF-8 is used transparently in 8-bit environments,
the use of a BOM will interfere with any protocol or file format that expects specific ASCII characters at the beginning,
such as the use of "#!" of at the beginning of Unix shell scripts.
http://www.unicode.org/faq/utf_bom.html#bom5
Yes, UTF-8 can contain a BOM. However, it makes no difference as to the endianness of the byte stream.
UTF-8 always has the same byte order. An initial BOM is only used as a signature - an indication that an otherwise unmarked text file is in UTF-8.
Note that some recipients of UTF-8 encoded data do not expect a BOM.
Where UTF-8 is used transparently in 8-bit environments,
the use of a BOM will interfere with any protocol or file format that expects specific ASCII characters at the beginning,
such as the use of "#!" of at the beginning of Unix shell scripts.
673デフォルトの名無しさん
2021/03/28(日) 20:48:56.89ID:24lC/lyM そもそも全く意味も機能も異なるZERO WIDTH NO-BREAK SPACEとBYTE ORDER MARKを
U+FEFFという単一のコードポイントに統合した馬鹿は何処の誰なん?
U+FEFFという単一のコードポイントに統合した馬鹿は何処の誰なん?
674デフォルトの名無しさん
2021/03/29(月) 10:11:40.65ID:wK+S1L2g >>673
英語よめないの?
ZERO WIDTH NO-BREAK SPACE(幅がない改行をしないスペース)
BOMは幅があるか?ないだろ
改行するか?しないだろ
BOMが途中に出てくることがあるか?
その場合どうすればいいんだ?
無視する=幅がなくて改行しないスペースだろ
英語よめないの?
ZERO WIDTH NO-BREAK SPACE(幅がない改行をしないスペース)
BOMは幅があるか?ないだろ
改行するか?しないだろ
BOMが途中に出てくることがあるか?
その場合どうすればいいんだ?
無視する=幅がなくて改行しないスペースだろ
675デフォルトの名無しさん
2021/03/29(月) 16:21:58.12ID:OlONkL8s 落ち着け
ZWNBS は無視しちゃ駄目だよ。そこで自動改行禁止というマークなので、ちゃんと処理しないと駄目。
ZWNBS は無視しちゃ駄目だよ。そこで自動改行禁止というマークなので、ちゃんと処理しないと駄目。
676デフォルトの名無しさん
2021/03/29(月) 17:07:30.02ID:wK+S1L2g >>675
自動改行禁止の意味わかってるか?
無視する=そこに文字がないのと同じように扱うから
自動改行も禁止なんだよ
BOMとZERO WIDTH NO-BREAK SPACEを同じにしたと言うより
BOMはZERO WIDTH NO-BREAK SPACEと同じ動きをする文字だということ
自動改行禁止の意味わかってるか?
無視する=そこに文字がないのと同じように扱うから
自動改行も禁止なんだよ
BOMとZERO WIDTH NO-BREAK SPACEを同じにしたと言うより
BOMはZERO WIDTH NO-BREAK SPACEと同じ動きをする文字だということ
677デフォルトの名無しさん
2021/03/29(月) 21:25:17.42ID:FXjqyr6T あまり文字コード関係ないけど笑ったので貼っとく
https://twitter.com/ryancdotorg/status/1375484757916672000
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/ryancdotorg/status/1375484757916672000
https://twitter.com/5chan_nel (5ch newer account)
678デフォルトの名無しさん
2021/03/30(火) 02:24:24.90ID:T6lwQIyt >>676
嘘をつくな。
BOM は内部コードに変換する時に取り除くべき文字。制御コードとしての機能はない。
ZWNBS は内部コードでも残り制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持つ。
嘘をつくな。
BOM は内部コードに変換する時に取り除くべき文字。制御コードとしての機能はない。
ZWNBS は内部コードでも残り制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持つ。
679デフォルトの名無しさん
2021/03/30(火) 02:31:28.79ID:ToWHw8Xp >>678
だからそのBOMが文書の内部に出てきたら
どう処理するんだよって話なんだが
データに絶対入らないように誰かが制限してるか?
バイナリエディタを使っても入れることが出来ないか?
入っていたら落ちたほうがいいか?
だからそのBOMが文書の内部に出てきたら
どう処理するんだよって話なんだが
データに絶対入らないように誰かが制限してるか?
バイナリエディタを使っても入れることが出来ないか?
入っていたら落ちたほうがいいか?
680デフォルトの名無しさん
2021/03/30(火) 03:04:28.57ID:T6lwQIyt681デフォルトの名無しさん
2021/03/30(火) 05:29:26.08ID:ToWHw8Xp >>680
だからバイナリエディタでBOMと同じコードを文章中に入れたものを
読み込んだら、どういう挙動をするべきかって話をしてるんだが
制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持たせたほうがいいだろうね
だからバイナリエディタでBOMと同じコードを文章中に入れたものを
読み込んだら、どういう挙動をするべきかって話をしてるんだが
制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持たせたほうがいいだろうね
682デフォルトの名無しさん
2021/03/30(火) 09:51:00.56ID:T6lwQIyt 持たせたほうがいいも何も、規格上はそういう意味だよ。
バイナリ・エディタで入れようが、テキスト・エディタで入れようが ZWNBS として扱う。
もともと規格では
U+FEFF は制御コードとして ZERO WIDTH NO-BREAK SPACE としての機能を持つ。(その場所での分割を禁止する)
そしてこれが、UTF-16, UTF-32 ストリームの先頭に来た場合には Byte Order Mark (エンディアンの指定)という特別な機能を持つ
さらに先頭の BOMは Unicode Signature (その文章が Unicode で書かれている印)として使用できる。
この先頭の U+FEFF は制御コードとしての機能はないので処理の際には取り除け。
先頭に U+FEFF が二つ続いた場合は一つ目は BOM で、二つ目は ZWNBS として解釈せよ。
UTF-16LE や UTF-16BE などのようにエンディア決め打ちの文字コードや、他の方法でエンディアンが指定されている場合は、先頭にあっても ZWNBS で BOM ではない。
ファイルを結合する時とか、そのままつなぐと、後ろにファイルの先頭の U+FEFF が ZWNBS として解釈されるので取り除くのを忘れんな
その後の改訂で
やっぱ使ってみると、同じコードポイントに複数の機能があるのはややこしいので U+2060 WORD JOINWER ってのを作った。
この WORD JOINER は ZWNBS と全く同じ機能だけど、BOM としては使うことができない。制御コードには今後はこっちを使うのを強く推奨。
でも歴史的な経緯と過去の資産があるから、文章の途中に出てくる U+FEFF は、これまでどおり の意味で解釈せよ。
バイナリ・エディタで入れようが、テキスト・エディタで入れようが ZWNBS として扱う。
もともと規格では
U+FEFF は制御コードとして ZERO WIDTH NO-BREAK SPACE としての機能を持つ。(その場所での分割を禁止する)
そしてこれが、UTF-16, UTF-32 ストリームの先頭に来た場合には Byte Order Mark (エンディアンの指定)という特別な機能を持つ
さらに先頭の BOMは Unicode Signature (その文章が Unicode で書かれている印)として使用できる。
この先頭の U+FEFF は制御コードとしての機能はないので処理の際には取り除け。
先頭に U+FEFF が二つ続いた場合は一つ目は BOM で、二つ目は ZWNBS として解釈せよ。
UTF-16LE や UTF-16BE などのようにエンディア決め打ちの文字コードや、他の方法でエンディアンが指定されている場合は、先頭にあっても ZWNBS で BOM ではない。
ファイルを結合する時とか、そのままつなぐと、後ろにファイルの先頭の U+FEFF が ZWNBS として解釈されるので取り除くのを忘れんな
その後の改訂で
やっぱ使ってみると、同じコードポイントに複数の機能があるのはややこしいので U+2060 WORD JOINWER ってのを作った。
この WORD JOINER は ZWNBS と全く同じ機能だけど、BOM としては使うことができない。制御コードには今後はこっちを使うのを強く推奨。
でも歴史的な経緯と過去の資産があるから、文章の途中に出てくる U+FEFF は、これまでどおり の意味で解釈せよ。
683デフォルトの名無しさん
2021/03/31(水) 01:51:23.09ID:AtIsL56M asciiの0-32までってc記法あるの以外ほぼ死語かと思ってたんだけど
バイナリエディタでMS系のフォーマット(特にOffice)で汎用されてるのな
セパレータ系とかなるべく原義に沿おうとしてて好感
いつもprintable文字抽出だけしてたからなかなか気付かんかった
バイナリエディタでMS系のフォーマット(特にOffice)で汎用されてるのな
セパレータ系とかなるべく原義に沿おうとしてて好感
いつもprintable文字抽出だけしてたからなかなか気付かんかった
684デフォルトの名無しさん
2021/03/31(水) 01:57:57.39ID:AtIsL56M 論理的に考えてcrlfが正義とか言い張り続けてたり、なんかこだわりあるんかねMS
685デフォルトの名無しさん
2021/03/31(水) 09:30:13.62ID:ekNiD538 > 論理的に考えてcrlfが正義とか言い張り続けてたり
なんのこと?
意味的にCR LFが正しいことに間違いはないし、CR LF対応は
意味のないプライドとかじゃなくて互換性のためにでしょ
それにLinuxとの互換性のためにLFだけのファイルもメモ帳で受け付けるようになったじゃん
開発ツールに限れば昔からLFだけでも認めてた。
なんのこと?
意味的にCR LFが正しいことに間違いはないし、CR LF対応は
意味のないプライドとかじゃなくて互換性のためにでしょ
それにLinuxとの互換性のためにLFだけのファイルもメモ帳で受け付けるようになったじゃん
開発ツールに限れば昔からLFだけでも認めてた。
686デフォルトの名無しさん
2021/03/31(水) 09:35:15.80ID:1T2H/5i8 >>685
crlfで正しいと思ってるよ、まあ蛇足だった
crlfで正しいと思ってるよ、まあ蛇足だった
687デフォルトの名無しさん
2021/03/31(水) 09:41:35.38ID:1T2H/5i8 Officeのalt/shift+retとかで特殊な改行したりするけど、ちゃんと対応するASCII制御文字入ってたんだなと感心してしまったもんで
688デフォルトの名無しさん
2021/03/31(水) 10:06:28.66ID:AtIsL56M 表の階層化にFS, GS, RS、複数行セルにVTとか使ってるねー、面白い
echoでコピペしてみたけどこれは受け付けてくれないっぽい…残念
echoでコピペしてみたけどこれは受け付けてくれないっぽい…残念
689デフォルトの名無しさん
2021/04/02(金) 14:48:41.83ID:XKDKi0jd メモ帳で折り返しにCR CR LF入れるとかもこの流れなのかな?
690デフォルトの名無しさん
2021/04/04(日) 09:56:09.95ID:Y/fIEFRX やはりBOMは必要だな
「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話
https://qiita.com/heeroo_ymsw/items/c6e15d5f9246b4e842eb
「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話
https://qiita.com/heeroo_ymsw/items/c6e15d5f9246b4e842eb
691デフォルトの名無しさん
2021/04/04(日) 11:25:45.54ID:BHN4NYpU >>689
きになる
Format>WordWrap?だよね
折返した状態で保存みたいなオプションがあるのかな
当たり前だけど保存しても改行してない(してたらバグだw
表示上だけ入れてるのかとコピペしても拾えない
内部で描画のコントロールに使ってるということ?かな?
きになる
Format>WordWrap?だよね
折返した状態で保存みたいなオプションがあるのかな
当たり前だけど保存しても改行してない(してたらバグだw
表示上だけ入れてるのかとコピペしても拾えない
内部で描画のコントロールに使ってるということ?かな?
692デフォルトの名無しさん
2021/04/04(日) 11:47:39.11ID:BHN4NYpU >>690
要するに
UTF-8、但しASCII/sjisとの共通部分はダメ、かつ英数字のみを使いたいということね
0120―ABCーXYZ(ユニコfull-width latin
これで要件を満たせる!
要するに
UTF-8、但しASCII/sjisとの共通部分はダメ、かつ英数字のみを使いたいということね
0120―ABCーXYZ(ユニコfull-width latin
これで要件を満たせる!
693デフォルトの名無しさん
2021/04/04(日) 11:59:15.19ID:bg/3EMBi 顧客が本当に求めていたモノ…
694デフォルトの名無しさん
2021/04/04(日) 20:11:30.38ID:+Q6KU8is BOM付きだな
頭でっかちの原理主義者はいつでも間違っている
頭でっかちの原理主義者はいつでも間違っている
695デフォルトの名無しさん
2021/04/05(月) 01:33:23.71ID:HL3+b1wt あほ過ぎる
UTF8 や本来のSJISやEUCはASCIIの完全上位互換なのがメリットなのに BOM 入れて互換性無くすとか素人の極み。
ASCIIと互換性無くていいんなら UTF16でも使ってろ。
UTF8 や本来のSJISやEUCはASCIIの完全上位互換なのがメリットなのに BOM 入れて互換性無くすとか素人の極み。
ASCIIと互換性無くていいんなら UTF16でも使ってろ。
696デフォルトの名無しさん
2021/04/05(月) 01:40:26.92ID:6E9KDupE その考え方がそもそもの間違いだわ
697デフォルトの名無しさん
2021/04/05(月) 01:48:11.31ID:i9PX2oQn 全角で納品したら楽しそうだからそれで
698デフォルトの名無しさん
2021/04/05(月) 07:02:33.51ID:HL3+b1wt ファイル名にいちいちBOMが入ってて、ASCII で書かれたファイル名と、UTF8で書かれたファイル名が、別ファイルとして扱われる世界。
考えただけでも吐き気がする。
考えただけでも吐き気がする。
699デフォルトの名無しさん
2021/04/05(月) 08:21:19.81ID:qswNC1lG ファイル名にBOM入れる奴はさすがにいないだろ…
いないよね?
いないよね?
700デフォルトの名無しさん
2021/04/05(月) 09:04:19.64ID:Tyhmgvsu BOMは"ファイル"に入れるのは別に悪くないと思ってる
明示できるものは明示すべきだろう、何でもutf-8の時代になりつつあるから、むしろ他のutfやsjis/eucに入れるのが時代にそぐう
もはやBOMじゃなくて単なるマジックナンバーだが
ファイル名…ってのは正直思いつかなかった
でもBOM付きの細かいテキストを文字列として継ぎ接ぎした時にトリムするのが面倒だった経験があるわ
やはりマジックナンバー、テキストファイル=マジックナンバー+テキストとして扱うべき
テキストファイル以外に付けるのは勘弁
明示できるものは明示すべきだろう、何でもutf-8の時代になりつつあるから、むしろ他のutfやsjis/eucに入れるのが時代にそぐう
もはやBOMじゃなくて単なるマジックナンバーだが
ファイル名…ってのは正直思いつかなかった
でもBOM付きの細かいテキストを文字列として継ぎ接ぎした時にトリムするのが面倒だった経験があるわ
やはりマジックナンバー、テキストファイル=マジックナンバー+テキストとして扱うべき
テキストファイル以外に付けるのは勘弁
701デフォルトの名無しさん
2021/04/05(月) 11:09:52.26ID:gsx4ZFoJ そりゃ仕様できっちりとBOMを入れませんと
なってるものにBOMを入れる必要ないだろ
テキストファイルの場合はいろんな文字コードが
歴史的な経緯で許可されてるフォーマットだから
BOMをファイル形式を判断するヘッダとし
て利用するというだけであって
なってるものにBOMを入れる必要ないだろ
テキストファイルの場合はいろんな文字コードが
歴史的な経緯で許可されてるフォーマットだから
BOMをファイル形式を判断するヘッダとし
て利用するというだけであって
702デフォルトの名無しさん
2021/04/05(月) 11:12:15.44ID:gsx4ZFoJ >>695
BOMはテキストファイルにおいて文字コードを判別するための仕組み
BOMによってSJISやEUCではないと判別できるのに
互換性がなんの関係があるのか?
SJISやEUCと互換性がないからこそ、文字コードを判別するのに利用できる
BOMはテキストファイルにおいて文字コードを判別するための仕組み
BOMによってSJISやEUCではないと判別できるのに
互換性がなんの関係があるのか?
SJISやEUCと互換性がないからこそ、文字コードを判別するのに利用できる
703デフォルトの名無しさん
2021/04/05(月) 11:51:41.26ID:HL3+b1wt なんで UTF -8 と SJIS の互換性気にせにゃならんねん。
これやから、ロートル多いスレは。
今からの時代 BOM なんかくてもデフォルトは UTF-8 だよ。
Linux とか Mac は既にそうなってるし、日本語WIndowsだって次か、次の次のメジャーバージョンくらいで SJIS 捨てて UTF-8 いくやろ。
過去に生きてるやつはBOM 必要かもしれないが、今が過渡期なのでそんな気がしてるだけや。
どうせ欧米がナロー系の文字コードは UTF-8 に一本化で動いてるんで、今さらどうにかなるもんでもない。
これやから、ロートル多いスレは。
今からの時代 BOM なんかくてもデフォルトは UTF-8 だよ。
Linux とか Mac は既にそうなってるし、日本語WIndowsだって次か、次の次のメジャーバージョンくらいで SJIS 捨てて UTF-8 いくやろ。
過去に生きてるやつはBOM 必要かもしれないが、今が過渡期なのでそんな気がしてるだけや。
どうせ欧米がナロー系の文字コードは UTF-8 に一本化で動いてるんで、今さらどうにかなるもんでもない。
704デフォルトの名無しさん
2021/04/05(月) 13:58:26.49ID:gsx4ZFoJ >>703
すぐバレる嘘を付くな
> Linux とか Mac は既にそうなってるし、
Linuxはローケルの変更から日本語だとEUC-JPに対応しているしSJISも使える
https://www.early2home.com/blog/os/linux/post-1314.html
WindowsはNTは最初からUTF-16だ
すぐバレる嘘を付くな
> Linux とか Mac は既にそうなってるし、
Linuxはローケルの変更から日本語だとEUC-JPに対応しているしSJISも使える
https://www.early2home.com/blog/os/linux/post-1314.html
WindowsはNTは最初からUTF-16だ
705デフォルトの名無しさん
2021/04/05(月) 14:08:55.17ID:i9PX2oQn ぶっちゃけUTF-8をマトモに実装するのは難しいので勘弁してほしい
正規化とかわけわかんぬ…
プログラミング言語やライブラリの内部ではコードポイントそのままで固定長で扱いやすいUTF-32採用が多いね
後に成熟してきたら変換のオーバヘッド削る為にUTF-8に切り替える風潮だけど(pythonはじめ諸々
将来ネットワークのスループットが良くなればUTF32も受け入れられたりしないかな、それまで生き残ってればの話だが
正規化とかわけわかんぬ…
プログラミング言語やライブラリの内部ではコードポイントそのままで固定長で扱いやすいUTF-32採用が多いね
後に成熟してきたら変換のオーバヘッド削る為にUTF-8に切り替える風潮だけど(pythonはじめ諸々
将来ネットワークのスループットが良くなればUTF32も受け入れられたりしないかな、それまで生き残ってればの話だが
706デフォルトの名無しさん
2021/04/05(月) 14:19:53.71ID:HL3+b1wt >>704
デフォルトって言葉の意味知ってる?
デフォルトって言葉の意味知ってる?
707デフォルトの名無しさん
2021/04/05(月) 15:36:03.55ID:Wm92d7Ex708デフォルトの名無しさん
2021/04/05(月) 15:37:39.57ID:Wm92d7Ex709デフォルトの名無しさん
2021/04/05(月) 16:24:25.38ID:4C6FED3z デフォルト、破産だよ
デフォルト国家、あの国やったろ
デフォルト国家、あの国やったろ
710デフォルトの名無しさん
2021/04/05(月) 17:09:09.07ID:HL3+b1wt >>707
日本語Windows のデフォルトの話してるのに、何で英語のアメリカとか関係してくるんや?
文字が読めない人なのだろうか?
お前の Windows 日本語インストールして直後のカスタマイズ無しの状態でコマンドプロプトで chcp って打ったら何と応えるの?
日本語Windows のデフォルトの話してるのに、何で英語のアメリカとか関係してくるんや?
文字が読めない人なのだろうか?
お前の Windows 日本語インストールして直後のカスタマイズ無しの状態でコマンドプロプトで chcp って打ったら何と応えるの?
711デフォルトの名無しさん
2021/04/05(月) 17:09:52.54ID:w8t18er9 日本語版Windowsのデフォルトコードページは今でもCP932だが?
712デフォルトの名無しさん
2021/04/05(月) 21:28:09.04ID:EGK62I3K https://opcdiary.net/i18n-windows%E3%81%A8linux%E3%81%A7%E3%81%AE%E6%96%87%E5%AD%97%E5%87%A6%E7%90%86%E3%81%AE%E9%81%95%E3%81%84/
> 現状市場に製品としてリリースされているWindowsはベースのキャラクターセットとしてはUNCODEを用い、標準のエンコードはUTF-16LE。基本的にはOSの標準APIレベルでI18N,M17Nに対応している。
> 現状市場に製品としてリリースされているWindowsはベースのキャラクターセットとしてはUNCODEを用い、標準のエンコードはUTF-16LE。基本的にはOSの標準APIレベルでI18N,M17Nに対応している。
713デフォルトの名無しさん
2021/04/05(月) 21:45:31.84ID:OztXbvyw うんこーど
714デフォルトの名無しさん
2021/04/05(月) 22:03:05.34ID:2g7RifS+ ユニコードには、UTF-8/16/32 の3つあって、
各OS・ファイルシステムによって異なるから、ややこしい
だから、システム関係には、ASCII 互換の部分だけを使えと言ってる。
128種類、7 bit ascii だっけ?
各OS・ファイルシステムによって異なるから、ややこしい
だから、システム関係には、ASCII 互換の部分だけを使えと言ってる。
128種類、7 bit ascii だっけ?
715デフォルトの名無しさん
2021/04/05(月) 22:20:28.93ID:Hlip8dzv >>711
何見て言っているのか知らんけどプログラムで文字列扱っていれば内部処理がUTF-16LEなのは知っているはず
何見て言っているのか知らんけどプログラムで文字列扱っていれば内部処理がUTF-16LEなのは知っているはず
716デフォルトの名無しさん
2021/04/05(月) 23:10:35.17ID:r3L3lQkE717デフォルトの名無しさん
2021/04/06(火) 00:46:43.57ID:+n99AGjS >>711
> 日本語版Windowsのデフォルトコードページは今でもCP932だが?
UTF-16だよ
だから日本語版Windowsで絵文字が使えるんだが?
CP932がどこで使われるのかわかってない?
> 日本語版Windowsのデフォルトコードページは今でもCP932だが?
UTF-16だよ
だから日本語版Windowsで絵文字が使えるんだが?
CP932がどこで使われるのかわかってない?
718デフォルトの名無しさん
2021/04/06(火) 00:47:44.91ID:+n99AGjS719デフォルトの名無しさん
2021/04/06(火) 00:50:23.32ID:+n99AGjS >>716
その上に「Unicodeに対応してない古いアプリの場合」って書いてあるやろ?w
Unicodeに対応している新しいアプリはUnicodeだし
お前「Unicodeに対応してない古いアプリ」がUTF-8にしたら
動くようになるとでも思ってんの?Unicodeに対応してないのにw
その上に「Unicodeに対応してない古いアプリの場合」って書いてあるやろ?w
Unicodeに対応している新しいアプリはUnicodeだし
お前「Unicodeに対応してない古いアプリ」がUTF-8にしたら
動くようになるとでも思ってんの?Unicodeに対応してないのにw
720デフォルトの名無しさん
2021/04/06(火) 01:02:50.31ID:4WR5kIDO 最近のwin10アップデで古いwinアプリが文字化けしだしたのはこれか?
設定で対応できるし内部で一貫してる限り問題はないけど
設定で対応できるし内部で一貫してる限り問題はないけど
721デフォルトの名無しさん
2021/04/06(火) 01:05:08.37ID:+n99AGjS >>720
どこの設定をどう変えたら対応できたんだ?
どこの設定をどう変えたら対応できたんだ?
722デフォルトの名無しさん
2021/04/06(火) 01:18:09.92ID:4WR5kIDO >>721
うろ覚えだけど英語圏向けwin10固有の問題だったかと
日本語版と日本語設定の英語版が違うと言う罠
システムロケールを日本語(英語以外)に変えるとユニコにフォールバックするようで
コードページ切り替えオプションがまた別にあるけどグローバルに適用されるので今度は他が化ける、アプリごとに設定開くので非常に面倒くさい
うろ覚えだけど英語圏向けwin10固有の問題だったかと
日本語版と日本語設定の英語版が違うと言う罠
システムロケールを日本語(英語以外)に変えるとユニコにフォールバックするようで
コードページ切り替えオプションがまた別にあるけどグローバルに適用されるので今度は他が化ける、アプリごとに設定開くので非常に面倒くさい
723デフォルトの名無しさん
2021/04/06(火) 01:21:01.30ID:4WR5kIDO 化けたメニューを記号として認識できるように訓練したから最近は弄ってない
高くても日本語版買おうね!
高くても日本語版買おうね!
724デフォルトの名無しさん
2021/04/06(火) 01:27:04.53ID:T8jVvgda ロートルが多いとか関係ないんだがな
若くたって古いシステムの吐くログを見ようと思ったらEUCだったりするんだよなあ
若くたって古いシステムの吐くログを見ようと思ったらEUCだったりするんだよなあ
725デフォルトの名無しさん
2021/04/06(火) 01:33:59.26ID:4WR5kIDO ローカル版windowsには、スクリーン上に同時に存在するテキストを複数の方式でデコードする機能がある、でいいのかな
726デフォルトの名無しさん
2021/04/06(火) 02:47:28.83ID:iR3Vnnhg >>719
ASCIIにしか対応してないソフトはそれで意外と動いたりするんだよな
Unicodeファイル名が普通に使えるようになったり、というかそのための設定
マルチバイト対応してるソフトは壊れるけど
今ならmanifestでアプリ単位でコードページをUTF-8にするのもあり
ASCIIにしか対応してないソフトはそれで意外と動いたりするんだよな
Unicodeファイル名が普通に使えるようになったり、というかそのための設定
マルチバイト対応してるソフトは壊れるけど
今ならmanifestでアプリ単位でコードページをUTF-8にするのもあり
727デフォルトの名無しさん
2021/04/06(火) 03:58:58.47ID:xQBleszy どうしたらいいのか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小泉農相、備蓄米の入札中止 スーパーなどに直接売り渡す考えも ★2 [おっさん友の会★]
- 小泉進次郎氏「もうとにかく米だ」 [Hitzeschleier★]
- 吉村知事「アース製薬に協力要請」 万博の大屋根リング・パビリオンで『虫が大量発生』に対応 ★2 [少考さん★]
- 【芸能】CM消滅&大河も降板… 永野芽郁を火だるまにした田中圭の沈黙 「だんまりなのエグくない?」「男側が叩かれるべきだ」と波紋 [冬月記者★]
- 【コメ】小泉新農相「1年前と比べて2倍ほどに上がっている地域がある…1年間でおよそ2倍に上がる商品はほかにあまりない」就任会見で [少考さん★]
- 小泉進次郎氏 「パックご飯も買う」 ★2 [Hitzeschleier★]
- コンビニおにぎり20個食えたら100万円(食えなかったら支払い10万円)←やる?
- おっさんが1人でヤバい組織と戦う洋画なんだっけ?
- 一流エジプト人がピシャリ、「虫達も含めてパビリオンの良さをアピールする方向で考えたらいいよ、湧くものは、湧く!」 [309323212]
- 【徹底討論】女性のマン毛は生えていたほうがいい?それともパイパンのほうがいい?お前らはどう思う? [513133237]
- 【悲報】小泉進次郎農水相の会話力。記者「コメを何kg買いましたか?」小泉「パックごはんも買います」 [354616885]
- 【悲報】ワンパンマンの作者、村田雄介先生。長期休載を表明・・・一体なぜ? [618199789]