ページ 11

文字化けについて

Posted: 2018年12月02日(日) 14:36
by tend-11001
printf("x‚Í%d,y‚Í%d‚Å‚·B\n", x, y);

友達から教えてもらったのですが、この文字化けのようなものをもとにもどして欲しいのですが
だれか教えてください。

Re: 文字化けについて

Posted: 2018年12月03日(月) 01:17
by みけCAT
これはどのようにして教えてもらったのですか?
もしファイルでもらったのであれば、文字化け?したテキストではなく
そのファイルの該当部分のデータ(バイト列)をそのまま提示していただけると、
もしかしたらわかりやすくなるかもしれません。

Re: 文字化けについて

Posted: 2018年12月03日(月) 05:02
by かずま
「xは%d,yは%dです。\n」であろうと推測しました。

コード:

Shift-JIS で次のようになる。
 x  は    %  d  ,  y  は    %  d  で    す    。    \  n
78 82 cd 25 64 2c 79 82 cd 25 64 82 c5 82 b7 81 42 5c 6e

各バイトを 2バイトに拡張。
   x    は        %    d    ,    y    は        %    d    で        す         。       \    n 
0078 0082 00cd 0025 0064 002c 0079 0082 00cd 0025 0064 0082 00c5 0082 00b7 0081 0042 005c 006e

なぜか 0082 が 201a と文字化け。
   x    ‚    Í    %    d    ,    y    ‚    Í    %    d    ‚    Å    ‚    ·         B    \    n 
0078 201a 00cd 0025 0064 002c 0079 201a 00cd 0025 0064 201a 00c5 201a 00b7 0081 0042 005c 006e

これを UTF-8 に変換したものが HTML で流通。
 x   ‚        Í    %  d  ,  y   ‚        Í    %  d   ‚        Å     ‚        ·          B  \  n
78 e2 80 9a c3 8d 25 64 2c 79 e2 80 9a c3 8d 25 64 e2 80 9a c3 85 e2 80 9a c2 b7 c2 81 42 5c 6e
UCS2 の 0081、UTF-8 の c2 81 は、制御文字