我希望你能給我一個關於發生了什麼問題的想法。NGINX,FastCGI,UTF-8編碼:輸出iso-8859-1而不是utf8
的SZENARIO: 我運行在FastCGI的模式腳本的GitWeb(CGI):
#!/bin/sh
export FCGI_SOCKET_PATH=127.0.0.1:7001
su git -c "/var/www/vh_[vhost]/htdocs/gitweb.cgi --fastcgi &"
然後我使用nginx的服務的內容:
...
fastcgi_pass 127.0.0.1:7001;
...
一切正常,但這裏的問題:
$ wget "http://git.[host].de/?p=[repo].git;a=summary" -O /tmp/test.txt && file --mime-encoding /tmp/test.txt
> /tmp/test.txt: iso-8859-1
$ su git -c "./gitweb.cgi \"?p=[repo].git;a=summary\" > ./test" && file --mime-encoding ./test
> ./test: utf-8
這顯然意味着fast-cgi輸出是你tf8,而nginx提供的內容是iso-8859-1。
FireBugs響應頭:
Server nginx
Date Fri, 02 Sep 2011 14:14:08 GMT
Content-Type application/xhtml+xml; charset=utf-8
Transfer-Encoding chunked
Connection close
它看起來像使用插座轉讓導致編碼問題。
我測試了很多,但無法弄清楚如何解決這個問題。
我看到這個問題也與nginx:Zürich而不是Zürich...希望得到答案! – sdolgy
根據我的下面...嘗試添加字符集 – sdolgy