區位碼(GB2312 編碼)由兩位數字組成:區碼(1-94)、位碼(1-94)。對應的雙位元組編碼為 (區碼+160, 位碼+160)。利用 Encoding.Default.GetString(byte[]) 即可解碼為中文字元。
using System;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
byte[] array = new byte[2];
string str = textBox1.Text.Trim(); // 輸入如 "1601" (區碼16, 位碼01)
string str1 = str.Substring(0, 2);
string str2 = str.Substring(2, 2);
int front = Convert.ToInt32(str1) + 160;
int back = Convert.ToInt32(str2) + 160;
array[0] = (byte)front;
array[1] = (byte)back;
textBox2.Text = Encoding.Default.GetString(array);
}
}
}
Encoding.Default 取得系統預設 ANSI 編碼(繁體中文環境為 Big5,簡體為 GB2312),若專案需跨平台建議明確指定 Encoding.GetEncoding("gb2312")。