文字コード総合スレ part15 (470レス)
文字コード総合スレ part15 http://mevius.5ch.net/test/read.cgi/tech/1723861080/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
68: デフォルトの名無しさん [] 2024/11/08(金) 18:20:23.07 ID:y8v+DuF6 >>66 そもそもUTF-8はその表記が正式な表記だから、表記の名称が存在しない。 http://mevius.5ch.net/test/read.cgi/tech/1723861080/68
69: デフォルトの名無しさん [sage] 2024/11/09(土) 19:37:18.98 ID:otPYdJdQ 天皇に名字がないようのなものか? って違うか http://mevius.5ch.net/test/read.cgi/tech/1723861080/69
70: デフォルトの名無しさん [sage] 2024/11/09(土) 20:43:59.20 ID:UMsfYHki 回答ありがとう。表記法や表現自体には特には名前ないんか。 正規表現のグループに名前を付けようとして 「(?<UnicodeCodePoint>(?<Prefix>U\+)(?<Hex>[0-9A-F]{4,6}))」 みたいにしたんだけど、 「U+HHHH」全体をコードポイントって呼んでいいのか、 「HHHH」部分だけがコードポイントと呼べるものなのか、 っていう疑問が湧いたんだよね。 調べたらすぐ分かるかと思ったら全然分からなくてモヤモヤしてた。 http://mevius.5ch.net/test/read.cgi/tech/1723861080/70
71: デフォルトの名無しさん [sage] 2024/11/09(土) 23:09:52.15 ID:OjNPz0/0 >>70 xxxx がコードポイント(code point) U+xxxx がコードポイント表記 (code point notation) とかで良いんじゃね 知らんけど http://mevius.5ch.net/test/read.cgi/tech/1723861080/71
72: デフォルトの名無しさん [sage] 2024/11/09(土) 23:59:10.46 ID:aDTWwhb+ 0xBEEFとBEEFは表現は違うけどどちらも16進表記で指してる値は同じ 10進表記の48879も同じ値を指す Unicodeのコードポイントってのは値を指してる だからなんやねんだけど http://mevius.5ch.net/test/read.cgi/tech/1723861080/72
73: デフォルトの名無しさん [] 2024/11/10(日) 02:50:29.80 ID:NcxfIIMm >>70 「U+」の部分はUTF-8だという意味 http://mevius.5ch.net/test/read.cgi/tech/1723861080/73
74: デフォルトの名無しさん [sage] 2024/11/10(日) 03:16:28.77 ID:c/95e8WD >>73 コードポイントとエンコードの区別が付かない男の人って http://mevius.5ch.net/test/read.cgi/tech/1723861080/74
75: デフォルトの名無しさん [] 2024/11/10(日) 12:29:54.80 ID:AfmJKCJ3 >>68 ≒ >>73 これはひどい http://mevius.5ch.net/test/read.cgi/tech/1723861080/75
76: デフォルトの名無しさん [sage] 2024/11/10(日) 16:10:50.24 ID:DLtuPbgG Cスレの通りにやって文字出力したら化けるんだけど、文字コード民的な正しい対処法は? ちゃんとソースファイルがUTF-8なのは確認した https://mevius.5ch.net/test/read.cgi/tech/1721137434/350 #include <windows.h> int main(void) { LPTSTR lptStr = TEXT("テスト😊"); printf("%s\n", lptStr); } http://mevius.5ch.net/test/read.cgi/tech/1723861080/76
77: デフォルトの名無しさん [sage] 2024/11/10(日) 16:20:39.17 ID:DLtuPbgG win32でのAやW、charとwchar_tの事は分かっていて Linux他でのクロスコンパイルを考えてwchar_tは使わずにUTF-8 everywhereで通しつつ puts("テスト😊"); が文字化けしない様にしたい 特定システムロケールは仮定せず ターミナルではchcp 65001してある 場合です http://mevius.5ch.net/test/read.cgi/tech/1723861080/77
78: デフォルトの名無しさん [sage] 2024/11/10(日) 16:47:24.57 ID:ZReNrF9P 端末がUTF-8非対応なのはないとして 出力をファイルへリダイレクトするかダンプして 想定どおりのバイト列か確認してみては? http://mevius.5ch.net/test/read.cgi/tech/1723861080/78
79: デフォルトの名無しさん [] 2024/11/10(日) 16:48:25.69 ID:IKmeMWRS C詳しくないんで、正しい対処法は知らんけど、どこの通りで手元で出力できた。 https://www.reddit.com/r/C_Programming/comments/1adv86p/how_do_i_print_a_penguin_emoji_in_c_language/?rdt=48269 http://mevius.5ch.net/test/read.cgi/tech/1723861080/79
80: デフォルトの名無しさん [sage] 2024/11/10(日) 16:48:33.88 ID:qC3Ky4ZL 分かってるならなんでLPTSTRから変換せずに使ってんの http://mevius.5ch.net/test/read.cgi/tech/1723861080/80
81: デフォルトの名無しさん [] 2024/11/10(日) 16:51:53.80 ID:IKmeMWRS 具体的な回答のリンクにできてなかったんで張り直し これの前半のほうやね https://www.reddit.com/r/C_Programming/comments/1adv86p/comment/kk5vdm1/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button http://mevius.5ch.net/test/read.cgi/tech/1723861080/81
82: デフォルトの名無しさん [sage] 2024/11/10(日) 17:29:55.58 ID:x8h1RQEe >>78-81 ありがとうございます putsで文字化けしていたのは、コマンドラインでソースutf-8指定したら文字化けは直りました だけど、引数が受け取れないですね #include <stdio.h> int main(int argc, char **argv) { puts("テスト0😊"); for (int i = 1; i < argc; i++) puts(argv[i]); } $ cl -utf-8 ConsoleApplication1.c $ ./ConsoleApplication1.exe テスト1😊 テスト2😊 テスト0😊 ???1?? ???2?? $ ./ConsoleApplication1.exe テスト1😊 テスト2😊 > out.txt $ cat out.txt テスト0😊 ???1?? ???2?? (システムロケールEnglishでの環境です) http://mevius.5ch.net/test/read.cgi/tech/1723861080/82
83: デフォルトの名無しさん [sage] 2024/11/10(日) 17:34:04.13 ID:x8h1RQEe デバッグで確認したところ、引数のテスト1😊 テスト2😊は受け取りの時点(argv[i])でアルファベット以外の各コードポイントが?になってます http://mevius.5ch.net/test/read.cgi/tech/1723861080/83
84: デフォルトの名無しさん [sage] 2024/11/10(日) 17:39:37.64 ID:x8h1RQEe WindowsTerminal MSYSTEM=UCRT64のMSYS2 bashです $ echo テスト1😊 テスト2😊 テスト1😊 テスト2😊 http://mevius.5ch.net/test/read.cgi/tech/1723861080/84
85: デフォルトの名無しさん [sage] 2024/11/10(日) 17:45:01.75 ID:x8h1RQEe $ 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は厳しいですかね? http://mevius.5ch.net/test/read.cgi/tech/1723861080/85
86: デフォルトの名無しさん [sage] 2024/11/10(日) 19:10:18.70 ID:c/95e8WD WindowsでワイドキャラクタってのはUTF16LEのことだよ? http://mevius.5ch.net/test/read.cgi/tech/1723861080/86
87: デフォルトの名無しさん [sage] 2024/11/10(日) 20:20:44.02 ID:+vLaBA7E 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"> <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings"> <activeCodePage>UTF-8</activeCodePage> </asmv3:windowsSettings> </asmv3:application> </assembly> $ cl -utf-8 ConsoleApplication1.c $ mt.exe -nologo -manifest "utf8.manifest" -outputresource:"ConsoleApplication1.exe;#1" $ ./ConsoleApplication1.exe テスト1😊 テスト2😊 テスト0😊 テスト1😊 テスト2😊 $ windres --input utf8.rc --output utf8.res --output-format=coff $ gcc ConsoleApplication1.c utf8.res $ ./a.exe テスト1😊 テスト2😊 テスト0😊 テスト1😊 テスト2😊 http://mevius.5ch.net/test/read.cgi/tech/1723861080/87
88: デフォルトの名無しさん [sage] 2024/11/10(日) 22:05:14.87 ID:ictCxOlF >>87 下記の手続きを適用したってことなのかな? Windows アプリで UTF-8 コード ページを使用する - Windows apps | Microsoft Learn https://learn.microsoft.com/ja-jp/windows/apps/design/globalizing/use-utf8-code-page http://mevius.5ch.net/test/read.cgi/tech/1723861080/88
89: デフォルトの名無しさん [sage] 2024/11/11(月) 06:32:20.07 ID:bzvUbbzk はい、検索して適当に拾ってきたのでxmlnsが微妙に違いますが同じことですね MinGW64ツールチェーンではutf8.rcを経由してマニフェスト埋め込みしてますが MSVCツールチェーンではその経路だとこうなります $ rc utf8.rc $ cl -utf-8 ConsoleApplication1.c utf8.res ついでにPythonでもやってみました $ cat ConsoleApplication1.py import sys print("テスト0😊") for s in sys.argv[1:]: print(s) $ python313.exe ConsoleApplication1.py テスト1😊 テスト2😊 テスト0😊 テスト1😊 テスト2😊 環境変数がセットされてたので強制的に空にしても問題ないようです $ PYTHONIOENCODING= PYTHONUTF8= python313.exe ConsoleApplication1.py テスト1😊 テスト2😊 テスト0😊 テスト1😊 テスト2😊 http://mevius.5ch.net/test/read.cgi/tech/1723861080/89
90: デフォルトの名無しさん [] 2024/11/11(月) 11:04:13.71 ID:RXw/cl7Z スレ汚しでしかない http://mevius.5ch.net/test/read.cgi/tech/1723861080/90
91: デフォルトの名無しさん [sage] 2024/11/11(月) 13:27:25.94 ID:ZQtGCGPy >>90 まあ、あの荒れそうな言語がユニコード引数でエラー出すからな http://mevius.5ch.net/test/read.cgi/tech/1723861080/91
92: デフォルトの名無しさん [sage] 2024/11/15(金) 23:15:52.91 ID:5CeogfbD >>73 コードはユニコード それをどうエンコーディングするかでUTF8やUTF16やUTF32などがある ネットの標準がUTF8に統一されてなって ファイルシステムでもUTF8に統一されつつあり プログラム内部でもほとんどの用途はそのまま透過的にUTF8が有利に 固定長で扱うUTF32はムダすぎで 可変長のUTF8は後ろからでも切れ目を間違えことなく 表示幅問題はUTF8/UTF32関係なく発生するため http://mevius.5ch.net/test/read.cgi/tech/1723861080/92
93: デフォルトの名無しさん [sage] 2024/11/17(日) 17:51:56.38 ID:4RtrNUdf >>92 >ファイルシステムでもUTF8に統一されつつあり 例を挙げてもらえますか? http://mevius.5ch.net/test/read.cgi/tech/1723861080/93
94: デフォルトの名無しさん [sage] 2024/11/17(日) 18:35:05.90 ID:hkK5KPG+ >>93 Linux distro, MacOS, android, iOS,... 挙げ始めたが最近のリリースだと Windows 以外のメジャーどころは全部じゃね? http://mevius.5ch.net/test/read.cgi/tech/1723861080/94
95: デフォルトの名無しさん [] 2024/11/18(月) 23:18:52.19 ID:cZsx9Sbk UTF-8は世界の誰もが好むわけではない。 どの民族もUTF-8の良いところと悪いところで悩んでいる http://mevius.5ch.net/test/read.cgi/tech/1723861080/95
96: デフォルトの名無しさん [] 2024/11/18(月) 23:20:18.92 ID:cZsx9Sbk >>94 勘違いしているけど、それらの製品でも区別して使う分けている。 http://mevius.5ch.net/test/read.cgi/tech/1723861080/96
97: デフォルトの名無しさん [sage] 2024/11/20(水) 15:38:36.45 ID:84IcR/Q0 >>94 Linux (ext4) は、ファイルシステムとしてはエンコーディングは規定されてないのでは? ディストロやユーザーがUTF-8を使ったりするのは自由だが よってAndroidも同様 なんだAppleだけじゃんw http://mevius.5ch.net/test/read.cgi/tech/1723861080/97
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 373 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s