2017-08-21 27 views
0

我想從C#發送數據到PHP腳本。 PHP頁面會將發佈的數據插入數據庫,但編碼需要爲UTF-8。從C#到PHP的參數後編碼

下面是從C#代碼:

WebClient client = new WebClient(); 
client.Encoding = Encoding.UTF8; 
NameValueCollection data = new NameValueCollection(); 
string rq = "data here"; 
rq = Convert.ToBase64String(Encoding.UTF8.GetBytes(rq)); 
data["q"] = rq; 
byte[] buffer=client.UploadValues("url of php file", "POST", data); 

代碼PHP文件中:

$data = $_POST["q"]; 
insert_to_database($data); 

如果數據包含像éà它們將被插入作爲Ä© Ä ....字符。

+0

好像錯誤是在PHP端。 PHP不太瞭解編碼類型。您擁有的數據已經是UTF8,但是被處理(通過PHP和它與數據庫的對話)以及ANSI/Latin。 – GolezTrol

+0

我想你會在[這個問題]中找到你的問題的答案(https://stackoverflow.com/questions/4623733/utf-8-problems-php-mysql) – GolezTrol

+0

如果我去了phpmyadmin並插入數據直接與像éà像他們會正確顯示 – Th3Wolf

回答

0

我找到了解決方案here

連接需要,或者實際上在你的數據庫建立連接的方式,PHP文件內的編碼

$conn = mysql_connect($server, $username, $password); 
mysql_set_charset("UTF8", $conn); 
+0

好!作爲一個方面說明:'mysql_connect'和它的家庭是舊的。如果有機會,請遷移到MySQLi或PDO,以使您的項目更具前瞻性。見[PHP/MySQL:選擇一個API](http://php.net/manual/en/mysqlinfo.api.choosing.php) – GolezTrol

+0

我會檢查。非常感謝@GolezTrol – Th3Wolf