2013-06-21 52 views
2

所以我有mIRC 7.21它默認啓用了UTF-8。
所以我有這樣的插座:mIRC Socket Chartset失敗

on *:sockopen:_tmdb_*:{ 
    sockwrite -tn $sockname GET $hget($sockname,url) HTTP/1.1 
    sockwrite -tn $sockname Host: "nah" 
    sockwrite -tn $sockname User-Agent: mIRC-API/v1-Alpha 
    sockwrite -tn $sockname Accept: application/json 
    sockwrite -tn $sockname Connection: close 
    sockwrite -tn $sockname $crlf $+ $crlf 
} 

我在默認情況下讓這些報頭由遠程服務器:

[Header] HTTP/1.1 200 OK 
[Header] Access-Control-Allow-Origin: * 
[Header] Age: 0 
[Header] Cache-Control: public, max-age=3600 
[Header] Content-Type: application/json;charset=utf-8 
..... 

而且我得到這個響應時,它是用英文寫的:

Extended Play 2006 47247 

雖然,當我試圖改變語言。我向api服務器發出請求 並定義了& language = el。我得到這個:

頁眉:

[Header] HTTP/1.1 200 OK 
[Header] Access-Control-Allow-Origin: * 
[Header] Age: 0 
[Header] Cache-Control: public, max-age=3600 
[Header] Content-Type: application/json;charset=utf-8 
..... 

結果:

Πέντε Λεπτά ΑκΟΞΌΞ± 2006 47247 

當我打開存儲JSON文件,mIRC的下載...我能看見就好了希臘 字符集。 mIRC不能。 任何想法爲什麼我的字符集通過套接字搞亂了? 我的意思是我可以用一個小的// echo -aΠεντελεπταακόμη寫得很好。 它顯示它就好。雖然通過插座是越來越亂了..下面
Extended Play

+0

mIRC的可以,但你需要改變你的「窗口」字體來顯示和解碼UTF。 –

回答

0
if $utfdecode($utfencode($1-,162)) { 
... 
} 

字符集編碼,我們的的字符代碼162

000 - ANSI_CHARSET 
001 - DEFAULT_CHARSET 
002 - SYMBOL_CHARSET 
077 - MAC_CHARSET 
128 - SHIFTJIS_CHARSET 
129 - HANGEUL_CHARSET 
130 - JOHAB_CHARSET 
134 - GB2312_CHARSET 
136 - CHINESEBIG5_CHARSET 
161 - GREEK_CHARSET 
162 - TURKISH_CHARSET 
163 - VIETNAMESE_CHARSET 
177 - HEBREW_CHARSET 
178 - ARABIC_CHARSET 
186 - BALTIC_CHARSET 
204 - RUSSIAN_CHARSET 
222 - THAI_CHARSET 
238 - EASTEUROPE_CHARSET 
255 - OEM_CHARSET 
+0

並參見bset二進制標識符 – CoCoRiCo