在開發面向華語地區的 Web 應用時,簡繁體中文轉換是常見需求。本文介紹如何在 C# 中利用 Microsoft.VisualBasic.Strings.StrConv 方法實現高效的簡繁體轉換,並搭配正確的編碼處理(Big5 編碼 950、GB2312 編碼 936)生成相容性佳的網頁。
在專案中加入 Microsoft.VisualBasic.dll 參考。該組件通常位於 .NET Framework 目錄下,例如:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.VisualBasic.dll
使用 StrConv 方法配合 VbStrConv.TraditionalChinese 或 VbStrConv.SimplifiedChinese 列舉值:
// 簡體轉繁體
string traditional = Microsoft.VisualBasic.Strings.StrConv(
inputString,
Microsoft.VisualBasic.VbStrConv.TraditionalChinese,
System.Globalization.CultureInfo.CurrentCulture.LCID);
// 繁體轉簡體
string simplified = Microsoft.VisualBasic.Strings.StrConv(
inputString,
Microsoft.VisualBasic.VbStrConv.SimplifiedChinese,
System.Globalization.CultureInfo.CurrentCulture.LCID);
詳細用法請參考 MSDN 文檔。
寫入繁體網頁時使用編碼 950 (Big5);讀取簡體源文件時使用編碼 936 (GB2312)。
public bool WriteFile(string content, string filePath)
{
if (string.IsNullOrEmpty(filePath)) return false;
try
{
// 確保目錄存在
string directory = Path.GetDirectoryName(filePath);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
using (StreamWriter writer = new StreamWriter(filePath, false, Encoding.GetEncoding(950)))
{
writer.Write(content);
}
return true;
}
catch
{
return false;
}
}
public string ReadFile(string filePath)
{
if (string.IsNullOrEmpty(filePath)) return string.Empty;
try
{
using (StreamReader reader = new StreamReader(filePath, Encoding.GetEncoding(936)))
{
return reader.ReadToEnd();
}
}
catch
{
return string.Empty;
}
}
StringBuilder 提升效能透過 Microsoft.VisualBasic.Strings.StrConv 搭配正確編碼處理,可快速實現 ASP.NET 專案的簡繁體網頁轉換需求。現代專案建議採用 UTF-8 統一編碼,配合前端 JavaScript 庫實現客戶端動態切換,提供更好的用戶體驗。