当前位置:编程学习 > C#/ASP.NET >>

asp.net編碼問題

現有一big5編碼的asp 網站,使用access作為數據庫,現想把後后資料輸入轉為asp.net,使用C#,但每當輸入到日文例如”右のテキ”時,加入到數據庫後欄位的資料仍是”右のテキ”,但把編碼改為big5,數據庫欄位內的資料就會變為”右?????”,但之前asp後台增加到數據庫內的資料是”右のテキ”,這與我想達到的效果有點不同,請問怎樣可以在asp.net內把資料” 右のテキ”變為” 右のテキ”增加到數據庫內。 --------------------编程问答--------------------

alter   database yourdbName  collate   Japanese_Unicode_CS_AS_KS_WS
--------------------编程问答-------------------- 我是用 access的 --------------------编程问答-------------------- asp.net 页面编码换成 65001 代签名。试试。
但不一下,看看CS里面 access 回来的值是否正确,不争权,取值的时候做Ecode处理 --------------------编程问答-------------------- 請詳細說明。

下列是我的代碼
protected void Button1_Click(object sender, EventArgs e)
    {
        string strConn = ConfigurationManager.ConnectionStrings["MConnectionString"].ConnectionString;
        OleDbConnection conn = new OleDbConnection(strConn);
        OleDbCommand cmd = new OleDbCommand();

        try
        {
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            string strSQL = "insert into inf(cact) "
                + " values(@cact)";
            cmd.CommandText = strSQL;

            OleDbParameter paraCAct = cmd.Parameters.Add("@cact", OleDbType.VarChar, 50);
            paraCAct.Value = TextBox1.Text.Trim();


            cmd.ExecuteNonQuery();
            
            Response.Write("<br /><center>");
            Response.Write("新增成功!<br />");
            Response.Write("<a href=Import.aspx>上一頁</a>");
            Response.End();
            conn.Close();

        }
        catch (Exception ex)
        {
            bool bValue = ex is ThreadAbortException;
            if (!bValue)
            {
                conn.Close();
                Response.Write("新增失敗:<br/>");
                Response.Write(ex.Message);
            }
        }
    }




引用 3 楼 yisuku_lee 的回复:
asp.net 页面编码换成 65001 代签名。试试。
但不一下,看看CS里面 access 回来的值是否正确,不争权,取值的时候做Ecode处理
--------------------编程问答-------------------- 路过,顶 --------------------编程问答-------------------- 绑定了! --------------------编程问答--------------------
每天回帖即可获得10分可用分! --------------------编程问答-------------------- 頂頂頂 --------------------编程问答-------------------- 可以用HttpUtility.HtmlEncode进行编码 --------------------编程问答--------------------     继续顶。 --------------------编程问答-------------------- 還是不行,有其他方法嗎?

引用 9 楼 marcoak 的回复:
可以用HttpUtility.HtmlEncode进行编码
--------------------编程问答-------------------- 只能手写了.
给一个汉字转换成GB码的代码.

StringBuilder sb = new StringBuilder();
foreach (char c in s) sb.AppendFormat("&#{0};", Convert.ToUInt32(c));
sb.ToString();
--------------------编程问答-------------------- 謝謝大大的提意,已經可以了,但有一點美中不足是所有的字都變為代碼,可否做到只有日文才用代碼?
即"右のテキ”變為”右のテキ” 右字不用代碼儲存


引用 12 楼 marcoak 的回复:
只能手写了.
给一个汉字转换成GB码的代码.

C# code

StringBuilder sb = new StringBuilder();
foreach (char c in s) sb.AppendFormat("&#{0};", Convert.ToUInt32(c));
sb.ToString();
--------------------编程问答-------------------- 頂頂頂 --------------------编程问答-------------------- 頂頂頂
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,