文字コード総合スレ part15 (470レス)
文字コード総合スレ part15 http://mevius.5ch.net/test/read.cgi/tech/1723861080/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
98: デフォルトの名無しさん [sage] 2024/11/20(水) 16:37:13.78 ID:APWVo8Zw >>97 そんなこと言いだしたら APFS も NTFS も単にバイト列を記録してるのに過ぎない。 それをOSやライブラリとしてどう解釈するかがファイルシステムの文字列。 だから linux kernel でなくて linux distro の問題。 (もっとも最近の Linux kernel はデフォルトで UTF-8 を指定するABIとかあって文字コードの変換したりするけど。別問題) http://mevius.5ch.net/test/read.cgi/tech/1723861080/98
99: デフォルトの名無しさん [] 2024/11/21(木) 12:47:55.86 ID:SUxxkxcm UTF-8も完璧じゃないからな http://mevius.5ch.net/test/read.cgi/tech/1723861080/99
100: デフォルトの名無しさん [sage] 2024/11/21(木) 14:20:22.35 ID:GU8mH0bt >>99 キミの言う「完璧」とは一体... http://mevius.5ch.net/test/read.cgi/tech/1723861080/100
101: デフォルトの名無しさん [sage] 2024/11/21(木) 15:46:00.53 ID:/Qk0W5ej >>98 >そんなこと言いだしたら APFS も NTFS も単にバイト列を記録してるのに過ぎない。 いいえ http://mevius.5ch.net/test/read.cgi/tech/1723861080/101
102: デフォルトの名無しさん [] 2024/12/01(日) 10:32:32.38 ID:RvSn0UL0 UTF8を推しているのは形を変えたASCII信者の老害。 http://mevius.5ch.net/test/read.cgi/tech/1723861080/102
103: デフォルトの名無しさん [sage] 2024/12/01(日) 11:15:01.77 ID:iESkoZBr 刷新できていない古いシステムを除くと 文字コードはユニコードになったね エンコーディングはネット上がUTF8なので それをそのまま扱うのが一般的となったね http://mevius.5ch.net/test/read.cgi/tech/1723861080/103
104: デフォルトの名無しさん [sage] 2024/12/01(日) 12:39:57.84 ID:8fzBRjbp UTF-8 より完璧な文字コードって何だい? ASCII と SJIS と UTF-8 はいいねしたい http://mevius.5ch.net/test/read.cgi/tech/1723861080/104
105: デフォルトの名無しさん [sage] 2024/12/01(日) 20:40:24.45 ID:NnL6xx/e なんか色々ごっちゃだな http://mevius.5ch.net/test/read.cgi/tech/1723861080/105
106: デフォルトの名無しさん [sage] 2024/12/02(月) 03:35:11.02 ID:okRPdXGy 元のユニコードがクソだからなあ 結局どうにもならなくなって異体字セレクタとか出てくるし http://mevius.5ch.net/test/read.cgi/tech/1723861080/106
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 364 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s