我有以下字符串。 “这是一个测试字符串(A)与(A)一些西欧字符(SS)”base64解码为ISO-8859-1
使用http://www.motobit.com/util/base64-decoder-encoder.asp 我碰到下面的base64编码字符串。
dGhpcyBpcyBhIHRlc3Qgc3RyaW5nICjgKSB3aXRoICjkKSBzb21lIHdlc3Rlcm4gZXVyb3BlIGNoYXJzICjfKQ ==
当我尝试用C函数解码此,我得到如下:
./test 输入的字符串:dGhpcyBpcyBhIHRlc3Qgc3RyaW5nICjgKSB3aXRoICjkKSBzb21lIHdlc3Rlcm4gZXVyb3BlIGNoYXJzICjfKQ == 输出字符串是:这是一个测试( )一些西欧字符( )字符串( )
int main()
{
char *in = "dGhpcyBpcyBhIHRlc3Qgc3RyaW5nICjgKSB3aXRoICjkKSBzb21lIHdlc3Rlcm4gZXVyb3BlIGNoYXJzICjfKQ==";
char out[100]="";
printf("Input string is : %s\n",in);
base64_decode(in, out);
printf("Output string is : %s\n",out);
return 0;
}
它不能显示iso-8859-1字符集的高位字符。
我试图与代码相同的字符串从 http://base64.sourceforge.net/b64.c ./b64 -d INFILE OUTFILE
INFILE包含: dGhpcyBpcyBhIHRlc3Qgc3RyaW5nICjgKSB3aXRoICjkKSBzb21lIHdlc3Rlcm4gZXVyb3BlIGNoYXJzICjfKQ ==
产生的OUTFILE还给期望的字符串。 当我打开它(在Emacs或vi),我可以看到:
“这是一个测试字符串(A)与(A)一些西欧字符(SS)”
但当我的猫的文件,它表明:
cat outfile
this is a test string (�) with (�) some western europe chars (�)
区域设置都是UTF8但任何人都知道为什么会出现在标准输出和查看文件打印/显示器之间的差异?
我打算开始调试base64_decode()函数,但显示器可能是一个红色的鲱鱼。
任何想法赞赏。
谢谢。
您应该评价软件的质量大致与网站的配色方案成正比。 – 2014-09-23 23:46:18