文字コード総合スレ part15 (472レス)
1-

82: 2024/11/10(日)17:29 ID:x8h1RQEe(1/4) AAS
>>78-81
ありがとうございます

putsで文字化けしていたのは、コマンドラインでソースutf-8指定したら文字化けは直りました
だけど、引数が受け取れないですね

#include <stdio.h>

int main(int argc, char **argv) {
puts("テスト0😊");
省14
83: 2024/11/10(日)17:34 ID:x8h1RQEe(2/4) AAS
デバッグで確認したところ、引数のテスト1😊 テスト2😊は受け取りの時点(argv[i])でアルファベット以外の各コードポイントが?になってます
84: 2024/11/10(日)17:39 ID:x8h1RQEe(3/4) AAS
WindowsTerminal
MSYSTEM=UCRT64のMSYS2 bashです

$ echo テスト1😊 テスト2😊
テスト1😊 テスト2😊
85: 2024/11/10(日)17:45 ID:x8h1RQEe(4/4) AAS
$ gcc ConsoleApplication1.c
$ ./a.exe
テスト0😊

$ ./a.exe テスト1😊 テスト2😊
Error: Command line contains characters that are not supported
in the active code page (1252).

UTF8 everywhereは厳しいですかね?
86: 2024/11/10(日)19:10 ID:c/95e8WD(2/2) AAS
WindowsでワイドキャラクタってのはUTF16LEのことだよ?
87
(1): 2024/11/10(日)20:20 ID:+vLaBA7E(1) AAS
UTF-8 everywhere行けました

$ cat utf8.rc
#include "winuser.h"
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "utf8.manifest"

$ cat utf8.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
省18
88: 2024/11/10(日)22:05 ID:ictCxOlF(1) AAS
>>87
下記の手続きを適用したってことなのかな?

Windows アプリで UTF-8 コード ページを使用する - Windows apps | Microsoft Learn
外部リンク:learn.microsoft.com
89: 2024/11/11(月)06:32 ID:bzvUbbzk(1) AAS
はい、検索して適当に拾ってきたのでxmlnsが微妙に違いますが同じことですね

MinGW64ツールチェーンではutf8.rcを経由してマニフェスト埋め込みしてますが
MSVCツールチェーンではその経路だとこうなります

$ rc utf8.rc
$ cl -utf-8 ConsoleApplication1.c utf8.res

ついでにPythonでもやってみました

$ cat ConsoleApplication1.py
省13
90
(1): 2024/11/11(月)11:04 ID:RXw/cl7Z(1) AAS
スレ汚しでしかない
91: 2024/11/11(月)13:27 ID:ZQtGCGPy(1) AAS
>>90
まあ、あの荒れそうな言語がユニコード引数でエラー出すからな
92
(1): 2024/11/15(金)23:15 ID:5CeogfbD(1) AAS
>>73
コードはユニコード
それをどうエンコーディングするかでUTF8やUTF16やUTF32などがある
ネットの標準がUTF8に統一されてなって
ファイルシステムでもUTF8に統一されつつあり
プログラム内部でもほとんどの用途はそのまま透過的にUTF8が有利に

固定長で扱うUTF32はムダすぎで
省2
93
(1): 2024/11/17(日)17:51 ID:4RtrNUdf(1) AAS
>>92
>ファイルシステムでもUTF8に統一されつつあり
例を挙げてもらえますか?
94
(2): 2024/11/17(日)18:35 ID:hkK5KPG+(1) AAS
>>93
Linux distro, MacOS, android, iOS,...
挙げ始めたが最近のリリースだと Windows 以外のメジャーどころは全部じゃね?
95: 2024/11/18(月)23:18 ID:cZsx9Sbk(1/2) AAS
UTF-8は世界の誰もが好むわけではない。
どの民族もUTF-8の良いところと悪いところで悩んでいる
96: 2024/11/18(月)23:20 ID:cZsx9Sbk(2/2) AAS
>>94
勘違いしているけど、それらの製品でも区別して使う分けている。
97
(1): 2024/11/20(水)15:38 ID:84IcR/Q0(1) AAS
>>94
Linux (ext4) は、ファイルシステムとしてはエンコーディングは規定されてないのでは?
ディストロやユーザーがUTF-8を使ったりするのは自由だが
よってAndroidも同様

なんだAppleだけじゃんw
98
(1): 2024/11/20(水)16:37 ID:APWVo8Zw(1) AAS
>>97
そんなこと言いだしたら APFS も NTFS も単にバイト列を記録してるのに過ぎない。
それをOSやライブラリとしてどう解釈するかがファイルシステムの文字列。
だから linux kernel でなくて linux distro の問題。
(もっとも最近の Linux kernel はデフォルトで UTF-8 を指定するABIとかあって文字コードの変換したりするけど。別問題)
99
(1): 2024/11/21(木)12:47 ID:SUxxkxcm(1) AAS
UTF-8も完璧じゃないからな
100: 2024/11/21(木)14:20 ID:GU8mH0bt(1) AAS
>>99
キミの言う「完璧」とは一体...
101: 2024/11/21(木)15:46 ID:/Qk0W5ej(1) AAS
>>98
>そんなこと言いだしたら APFS も NTFS も単にバイト列を記録してるのに過ぎない。
いいえ
102: 2024/12/01(日)10:32 ID:RvSn0UL0(1) AAS
UTF8を推しているのは形を変えたASCII信者の老害。
103
(1): 2024/12/01(日)11:15 ID:iESkoZBr(1) AAS
刷新できていない古いシステムを除くと
文字コードはユニコードになったね

エンコーディングはネット上がUTF8なので
それをそのまま扱うのが一般的となったね
104: 2024/12/01(日)12:39 ID:8fzBRjbp(1) AAS
UTF-8 より完璧な文字コードって何だい?
ASCII と SJIS と UTF-8 はいいねしたい
105: 2024/12/01(日)20:40 ID:NnL6xx/e(1) AAS
なんか色々ごっちゃだな
106: 2024/12/02(月)03:35 ID:okRPdXGy(1) AAS
元のユニコードがクソだからなあ
結局どうにもならなくなって異体字セレクタとか出てくるし
107: 2024/12/02(月)13:49 ID:Zd1R379W(1) AAS
ishの出力ってSJISが標準?
utf-8板のish欲しいと思ったけど
-Dutf8付けてコンパイルしても結局SJIS出力だった
108: 2024/12/02(月)14:10 ID:n2j6TE+S(1) AAS
バイトデータで出力してるだけでエンコーディング関係ないような
UTF-8対応してもバイト単位でみたら7ビットしか情報持てないから損
効率気にしないならコード変換したらいい
半角カナが3バイトになるけどエラー訂正なんかは使える
109: 2024/12/03(火)12:52 ID:DZc+/1dr(1) AAS
たまたまSJISでデコードしたら人間に読める(かもしれない)ってだけで
只のバイナリデータだよね
110: 2024/12/04(水)23:36 ID:9B20CEFA(1) AAS
SJISとして不正なバイト列は含まれないはず
111
(3): 2024/12/05(木)16:18 ID:riH9D2sC(1) AAS
ファイル名がユニコードだと、
例えば2つのファイル名が同一かどうかの判定は、2つのユニコード列が同一かどうかの
判定をしなくてはならない。この場合の同一とはなんだろう。めんどくさい
112: 2024/12/05(木)16:59 ID:jrS77sb5(1/2) AAS
>>111
「ユニコード列」みたいな曖昧な用語で考えると曖昧な結果にしかならなんわな
113
(2): 2024/12/05(木)17:16 ID:jrS77sb5(2/2) AAS
「ファイル名」という用語に限ってもOSごとに異なる意味をもち、「バイト列/コードポイント表現」(Linux/Windows)と「 unicode 正規化表現」(MacOS)のどっちのやり方もあるし unicode の正規化には複数の種類がある
114: 2024/12/05(木)19:21 ID:f+d6ZP2R(1/2) AAS
>>103
ネットはJISもあるから、そう簡単な話ではない。

EメールだとまだJISが主流。
115: 2024/12/05(木)19:22 ID:f+d6ZP2R(2/2) AAS
>>113
Macのせいで記号や改行コードの解釈がめちゃくちゃになった。
116: 2024/12/05(木)22:25 ID:Kc+yIq6Q(1) AAS
>>111はあえて雑に書いてあるんだが(めんどくさいからw)
>>113は「曖昧じゃない」んだ?
117: 2024/12/05(木)23:11 ID:+y5lu+gF(1) AAS
見苦しいぞ
118
(2): 2024/12/06(金)10:53 ID:zw4qy2EX(1) AAS
ハンカクカタカナ.txtと
ハンカクカタカナ.txtは
区別されると困るか区別して欲しいかは個人の好みだな
119: 2024/12/06(金)11:15 ID:kzR0LSsc(1) AAS
>>111,118
主観と好みの問題だから、現状がそれを孕んでいるかどうか心配ならNKFCで突合チェックしたら良いだけかな
120: 2024/12/06(金)13:01 ID:tlsLperd(1) AAS
>>118
自分はまったく別物だろうという考えだが、逆にそれを同じと思う人がいるというのに驚きだ
121
(2): 2024/12/06(金)14:57 ID:PqgirqmV(1/4) AAS
MacOS/iOS だと OS 的にファイル名はNFD強制なのでその2つ区別できないのが普通だな
Macユーザーは「半角カナはファイル名には使えない」という言い方してることが多いけど
122
(1): 2024/12/06(金)15:08 ID:teqNcVuG(1) AAS
Windowsは大文字小文字の区別を付けないのがデフォルトなんだけど、
WSL内からアクセスする兼ね合いで区別設定できる(fsutil)

>>121
Macにも同様の理由でNFD強制解除の設定があるのでは?
123: 2024/12/06(金)17:09 ID:PqgirqmV(2/4) AAS
>>122
強制解除とかはなかったと思うが古い HFS+ と違って新しい APFS では論理的には書き込み可能なはず
一方でライブラリで、ファイルオープンする時にファイル名が強制的にNFD変換されるので通常のプログラムでは全部NFDになるのは避けられない
124
(1): 2024/12/06(金)20:10 ID:77CvoLMD(1) AAS
Macが一番遅れているのは意外だな

> Mac で NAS (SMB) のファイルが見えない問題を Unicode 正規化方式を変えて解決
> Unicode 正規化方式として NFD を採用しているのは Mac なのに,SMB (NAS) を介してみると当の Mac だけがそういったファイルを認識できない(ことがある)というのはなんとも皮肉な結果ですね...。
125: 2024/12/06(金)21:07 ID:PqgirqmV(3/4) AAS
>>124
Mac はローカルファイルは NFD (っぽい独自仕様)で正規化されてる前提で、リモートのSMBの先は NFC (っぽい独自仕様)で正規化されている前提で動作するという謎仕様なので
Lunux は基本的に正規化されずに全部別の文字扱いで unicode の全文字が使える
Windows も基本的には正規化を前提にしていないが独自仕様の使えない文字がある
126: 2024/12/06(金)21:22 ID:XSDLieo6(1) AAS
わかりやすいようにたとえで説明するとさ、
オマエんちに人を招待したら、土足のまま上がってきた
オマエはイラっとするんじゃね? はいオマエ遅れてる〜
127: 2024/12/06(金)21:35 ID:PqgirqmV(4/4) AAS
服装カジュアルな場所でも常にスーツ着てきてスーツ着てないやつは家族だろうと友人だろうと全員無視するのが Mac 仕草
その上、自宅用と訪問用に別の種類のスーツを使い分けてて同じ種類のスーツ着てないと相手してくれない
128
(1): 2024/12/07(土)10:53 ID:+zec5U9G(1) AAS
UnicodeはUnicodeで様々な言語の様々な表現ができるようにするなかで一意性についても
用途や目的によって方法は異なるとしているわけで、そもそもファイルをファイル名で特定するという
昔ながらのやり方との齟齬が出てきているのかもね。
使うなら使うでファイルシステムに用いる正規化ルールなどを定めなければならないんだろう。
129: 2024/12/07(土)11:21 ID:RCmjilK5(1) AAS
同一性やコロケーション問題として
path-win-ntfs、path-linux-ext4のようにunicodeでpath-localeを定めてicu実装されたら良いのにと思った事はあったけど、
それで他の方法が駆逐されるわけじゃなく新たなバリエーションを増やすだけだから、今は余計な事するなと思うよ
130: 2024/12/07(土)11:21 ID:prVW7qhX(1/3) AAS
>>128
ファイル名はOS的には単なる識別子なのでバイト列一致で良い
それを文字コードと絡めて正規化しようとするのがそもそもの間違い
バイト列をどのように解釈するかは別のレイヤーの問題
131
(1): 2024/12/07(土)11:44 ID:3wlpERVS(1) AAS
FSとしてならそれでいい
OSをどの層までとするかでも変わってくるけど
マウント時に変換かけてOS間の相互運用気にしてほしい
ネットワーク透過考えるとパスはURIで扱いたいしね
132: 2024/12/07(土)13:08 ID:prVW7qhX(2/3) AAS
>>131
基本的にはアプリ側のライブラリ層でやるべきこと
OS標準ライブラリかユーザ追加ライブラリかはOSの思想によるし Linux とかだとOS標準ライブラリという考え方は縁遠いけど
マウントの時にファイルシステムで文字コード変換するのも否定しないけど、あくまで代替手段なので、固定ではなくオプションや設定で利用者で任意に変更できるべきもの
133: 2024/12/07(土)14:01 ID:8ekNK8XT(1) AAS
>他の方法が駆逐されるわけじゃなく新たなバリエーションを増やすだけ

ほんそれ
134: 2024/12/07(土)14:17 ID:Zwl6oBBL(1) AAS
まずはMacを駆逐しよう
135: 2024/12/07(土)16:00 ID:2Ddhf3xH(1) AAS
Mac で日本語を駆逐でいいんじゃね?
136
(2): 2024/12/07(土)21:42 ID:1sWZyE4C(1) AAS
ファイル名にはASCIIにある文字しか使わないようにすれば解決
137: 2024/12/07(土)21:44 ID:prVW7qhX(3/3) AAS
>>136
ASCII のバックスラッシュが円記号になってしまう OS がるらしい
138
(1): 2024/12/08(日)03:07 ID:h9KuPnHR(1) AAS
>>136
じゃあまずはASCII以外でここに書き込むのやめろよ
139: 2024/12/08(日)04:05 ID:Xxla/ZnP(1) AAS
>>138
ここにファイル名を書いてる人あまりいないと思うんだけど?
140: 2024/12/09(月)11:25 ID:uh4vUAM3(1) AAS
波ダッシュ(〜)と全角チルダ(〜)は違う文字
141
(1): 2024/12/09(月)12:17 ID:Ne3E3UJU(1) AAS
JISで全角チルダ定義したのがアレだよな
全角しか表示できない場面のためだろうけど
142
(1): 2024/12/09(月)14:00 ID:4HU/GnaT(1/3) AAS
>>141
JIS は全角と半角とか定義してない(定期
143
(1): 2024/12/09(月)14:37 ID:+G8yezOA(1) AAS
>>142
えー、をMSIMEで変換したら
全角チルダ(U+FF5E)でした

抑揚のある伸ばし棒はこれが正解ですか?
144: 2024/12/09(月)15:02 ID:4HU/GnaT(2/3) AAS
>>143
知らん
MS が決めたことは MS に聞け
全角とか半角とか関係ない
145
(1): 2024/12/09(月)17:46 ID:bX1qj24S(1) AAS
この板には表層的にMSを持ち出すだけで思考停止する若干一名がいるね
146: 2024/12/09(月)18:34 ID:4HU/GnaT(3/3) AAS
>>145
シフトJISの「波ダーシ」を unicode の「全角チルダ」にマッピングする CP932 を規定したのはマイクロソフト
マイクロソフト以外の Linux とか MacOS とかその他の各社OSではそうなっていない

マイクロソフトが何でこんなマッピングにしたのかは専門家でも分かんない謎
unicode がまだドラフトの時代にあわてて作業したのでミスっただけの可能性も指摘されてるが、一度決めたものは互換性のために変えられないのだろう点は理解できる
147: 2024/12/09(月)23:51 ID:TvtcjS7H(1) AAS
マイクロソフト憎しにも程がある
デマだめ絶対
148: 2024/12/13(金)01:50 ID:XDI5kMlm(1) AAS
マイクロソフトの場合親の敵の可能性があるから俺は許すね
気の済むまでじゃんじゃんやっといてくれ
149: 2024/12/13(金)02:14 ID:OiDxg/7M(1/2) AAS
unicode 規格が最初に作られた時サイトに参考情報として JIS と unicode のマッピング表が置いてあった
Linux も Mac も商用Unixもこの表に従ってJISの波ダーシを unicode の wave dash にマッピングした。さらに JISの規格書にもこのマッピングで記載された
ただ Microsoft 1社だけは JIS の波ダーシを unicode の fullwidth tilde にマッピングした

こんなんマイクロソフトの中の人以外に理由が分かるわけねーだろ
150
(1): 2024/12/13(金)11:09 ID:ncXjn+FF(1) AAS
初期のUnicode仕様書の文字の形がおかしかったのがそもそもの原因なんだけどね

いまの仕様書では、〜(U+301C、波ダッシュ)は、~(U+FF5E、全角チルダ)と同じ字形だけど、
古いものは、上下反転した存在しない文字の形だったので、どちらに合わせるかを決める時点で、
MSは形の相似した全角チルダのU+FF5Eを、その他は仕様どおりの波ダッシュのU+301Cを割り当てた
更にMacは仕様書を無視して字形を変更し、現在の仕様書と同じようにU+301Cに本来の波ダッシュの形を割り当てた

ただ、上下反転した字形は、縦書きの際の全角チルダ(左右の順)文字を横書きにしたために紛れ込んだとも言われているので、
仕様書制定の段階で縦書きのある日本語を理解した人が加わっていなかったのだろうな
省3
151: 2024/12/13(金)11:39 ID:OiDxg/7M(2/2) AAS
>>150
仕様書も文字の形がおかしかったはネットの素人が勝手に推測した迷信、文字形は規定していない
文字コード的にはフォントで変わる文字の形は意味がない

unicode の wave dash は JIS 第一水準の波ダージなどに対応する文字として準備された
unicode の互換領域の fullwidth tilde は EUC-JP とかで使用されいたJIS補助漢字のチルダをマッピングするために準備された
EUC-JP では ASCII の1バイト文字のチルダと補助漢字の2倍と文字のチルダに両方が使われていたので互換領域が必要だった
152: 01/11(土)13:26 ID:ftPdDy1W(1/4) AAS
なんか文字コード絡みでWindowsに特大級のセキュリティホールが見つかったぽい
外部リンク:blog.orange.tw
153
(1): 01/11(土)13:36 ID:ftPdDy1W(2/4) AAS
CP65001で緩和可能ってことであってるよね?

超ヤバげなんでageるよ
154: 01/11(土)13:52 ID:wkEhpAnW(1) AAS
>>153
あってる
MSYS2を使ってれば2,3ヶ月前には対策の副作用があったから知ってたよ
メディアはもっとこれを大きく報じてユーザー環境にもUTF8ロケールが広まって欲しい
155: 01/11(土)15:04 ID:mk8LdH4O(1) AAS
やべーやつだこれ
終わったな...
156: 01/11(土)15:07 ID:MN266Dik(1/4) AAS
とうとう Windows の Best-Fit-Conversion が槍玉にあげられたか
これって多数の個別アプリの問題に矮小化されてきたけどどう考えてもOSの設計ミスにしかみえない
157: 01/11(土)16:08 ID:IZON3iKr(1/3) AAS
件のBestFit機能のせいで、
windowsバッチでフルパスが半角スペースなし全角スペースありだと、
どのようにクォーティングをしようともまともに動かなくなったわけか
158: 01/11(土)16:17 ID:PjVvqmiz(1/2) AAS
システム設定でUTF8にするとメモ帳でSJISテキストファイルが文字化けする訳だけど
この特需で伸ばす代替エディタは何か?
159: 01/11(土)16:20 ID:PjVvqmiz(2/2) AAS
場合によっては情シスがSJISテキストファイルリストアップツールを用意する事になりそう
160
(1): 01/11(土)16:29 ID:IZON3iKr(2/3) AAS
UTF-8に設定すると、JaneStyleは今度こそ本当に使えなくなるんだよな
161
(1): 01/11(土)16:37 ID:8GlegYBS(1/2) AAS
ファイル名に禁則文字を増やしても避けられないのだろうか?
162: 01/11(土)16:50 ID:SJ4Pziuh(1) AAS
これを機に932以外では文字化けするレガシーアプリは駆逐されれば良い
1-
あと 310 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s