日期:2014-05-18  浏览次数:20876 次

??????? ?????????
?????? ?????????



这样的文字 winfrom 如何保存。 我保存了一条。 INSERT 后 全部变成???????
进数据库看,也全部是??????

请朋友们指条活路。

------解决方案--------------------
存放该值的字段设为nvarchar,nchar,ntext 等支持Unicode(UTF-8)数据类型
------解决方案--------------------
存成二进制
试试
------解决方案--------------------
用base64编码

C# code

using System;
using System.Text;

// 维文转换成base64,以便写入数据库
public static string ToEncoding(string plainText)
{
    // 获取你要的文字的字符编码,维文的编码标准;
    // xxxx 表示维文的标准
    Encoding e = Encoding.GetEncoding("xxxx");

    // 把原文变成byte 数组
    byte[] temp = e.GetBytes(plainText);

    // 变成base64字符编码
    string target = Convert.ToBase64String(temp);

    // 返回结果
    return target;
}

// 数据库的内容变成维文,可以显示
public static string FromEncoding(string base64Text)
{
    // 获取维文的编码集
    Encoding e = Encoding.GetEncoding("xxxx");

    // 转换成byte 数组
     byte[] temp = Convert.FromBase64String(base64Text);

    // 转换成维文
    string target = e.GetString(temp);

    // 返回结果
    return target;
}

// 使用方法
string s = "?????? ?????????";

// 变成 base64 编码
string txtToDb = ToEncoding(s);

// 这个txtToDb 可以写入任何数据库

// 从数据库获取的文本经过转换可以变成原文
string txtFromDb = FromEncoding(txtToDb);

------解决方案--------------------
嗯.非常同意LS...

^o^

Sql Server 不能直接保存特殊字符的...

所以要先处理字符的编码...
------解决方案--------------------


是维语,我也是新疆的,你实在不行就用新维语吧,新维语是英文的他们都可以读懂的。
试下维语字库,我见过一个朋友用哈语的字库,大概50个字母的,不知道维语是不是也是这样用字母拼写的,是的话可能也是存成ASC吗吧~!
只是猜测,你找个维语网站,看看元吗,或许有收获~!
------解决方案--------------------
<script>
 var str="?????? ?????????";
str=escape(str);
alert(str);
str=unescape(str);
alert(str);
</script>
------解决方案--------------------
TomMax 的方法就是把输入的字符串转换成 ASCII码二进制,然后再存到数据库中的.当然,你数据库对应的字段类型不能是varchar了,

要改成二进制类型(sql2005)varbinary(或其他的binary).