我已将您的三个韩语标志保存到一个名为 korean 的文件中,将其放在我从以下 C 源代码生成的可执行文件旁边:
#include <stdio.h>
int main( ) {
FILE * fp;
fp = fopen( "korean", "r" );
if ( fp == NULL ) {
printf( "Failure at line %d\n", __LINE__ );
return -1;
}
int currentchar;
while ( ( currentchar = fgetc( fp ) ) != EOF ) {
printf( "%%%X ", currentchar );
}
putchar( 10 );
return 0;
}
前两个百分号%% 只是在我的%X 之前有一个百分号,它将以16 进制打印currentchar,十六进制,大写。您可以将其视为特定于% 的转义序列。输出是:
%EB %B0 %95 %EC %9A %B0 %EC %A4 %91
您可能已经意识到,这正是您报告的顺序。您可以使用此事实将这些值解码回您的韩语字符。让我们恢复这个过程;将带有百分号且不带空格的百分比编码序列保存到文件中,将文件命名为 percentencoded,并使用以下 C 源代码:
#include <stdio.h>
int main( ) {
FILE * decodee;
FILE * percentencoded;
decodee = fopen( "decodee", "w" );
percentencoded = fopen( "percentencoded", "r" );
if ( decodee == NULL || percentencoded == NULL ) {
printf( "Failure at line %d\n", __LINE__ );
return -1;
}
int currentchar;
while ( fscanf( percentencoded, "%%%X", ¤tchar ) == 1 ) {
fputc( currentchar, decodee );
}
putchar( 10 );
return 0;
}
percentencoded 文件中包含以下内容:
%EB%B0%95%EC%9A%B0%EC%A4%91
生成的文件 decodee 现在里面有以下内容:
박우중
我希望这对你有所帮助...