我有以下字符串。 「這是一個測試字符串(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