0

我創建了一個API.NET Web API。它使用默認的utf-8內容編碼。我需要輸出爲latin-1來匹配數據庫。ASP.NET Web API內容編碼

+0

如果你的輸出編碼需要匹配你的數據庫編碼,你可能會做錯誤的... http://www.joelonsoftware.com/articles/Unicode.html –

+0

你能詳細說明我該怎麼做嗎?我的數據庫使用Latin-1編碼,然後將此數據庫中的字符顯示在UTF-8的網頁上(默認情況下),所以我想將頁面設置爲Latin 1,以便字符正確顯示。 – Sam

+0

你是否從原始字節數組中提取數據並將這些數據直接發送到輸出?如果您使用的數據庫庫將數據庫中的文本類型處理爲.net字符串,則應該像庫所有其他.net字符串一樣將這些數據庫轉換爲UCS-2,並且數據庫編碼應該是不相關的。 –

回答

2

這裏有一個文章,說明如何做到這一點http://blogs.msdn.com/b/henrikn/archive/2012/04/22/asp-net-web-api-content-negotiation-and-accept-charset.aspx

你只需要從這篇文章更改刪除支載的所有編碼,包括剛剛Latin-1的

這樣的事情在你的應用程序啓動

protected void Application_Start() 
    { 

     Encoding latinEncoding = Encoding.GetEncoding("Latin-1"); 
     GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedEncodings.Add(latinEncoding); 
     GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedEncodings.RemoveAt(0); 

    } 

並添加下面的命名空間:

using System.Text; 
+0

謝謝我會在工作站測試這個 – Sam

+0

你測試過了嗎? –

+0

不,不用擔心如果它能正常工作,我會打勾你的答案...... – Sam