C# 从sql发送到手机的乌尔都语消息格式不可读
我将乌尔都语文本分配给c#中的一个变量,并将其插入数据库(SendMessages表),它可以完美地保存乌尔都语消息,无需任何修改,但当任何手机接收到该消息时,它会显示为C# 从sql发送到手机的乌尔都语消息格式不可读,c#,sql,asp.net,.net,urdu,C#,Sql,Asp.net,.net,Urdu,我将乌尔都语文本分配给c#中的一个变量,并将其插入数据库(SendMessages表),它可以完美地保存乌尔都语消息,无需任何修改,但当任何手机接收到该消息时,它会显示为?,为什么?我用所有与乌尔都语兼容的手机检查了一下,这些手机都能完美地接收其他乌尔都语信息,但不是这一个 代码asp.net: String MessageLanguage= Convert.ToString(ViewState["LanguageCode"]); // if (
?
,为什么?我用所有与乌尔都语兼容的手机检查了一下,这些手机都能完美地接收其他乌尔都语信息,但不是这一个
代码asp.net:
String MessageLanguage= Convert.ToString(ViewState["LanguageCode"]); //
if (MessageLanguage == "ur")
{
String UrduMsg = ComplaintCode +" "+"اپکی سثیکایت درج کردی گیؑ ھے۔ سثیکایت کوڈ یہ ہے";
quebiz.Insert(lblContact.Text, UrduMsg, null, Convert.ToInt32(lblComplainantID.Text), null, null);
ViewState["LanguageCode"] = null;
}
简单地说,将乌尔都语消息从C#传递到sql表是很好和完美的,这并没有问题,但在手机中接收到相同的短信后,它就不这样工作了
为什么??帮忙?
我在sql server 2014中使用asp.net C#.net 4.0。根据您的评论,您正在使用varchar将消息存储在数据库中。但是,varchar不支持Unicode,这意味着任何非拉丁字符(英语使用的字符)都不能正确显示。将其更改为nvarchar,它确实支持Unicode。可以在数据库中使用
varchar
,并按照以下步骤操作
Encoding.UTF8
获取字节并将其转换为Base64
Encoding.UTF8.GetString(Convert.FromBase64String(“value”)
并使用此值显示这听起来像是一个编码错误。你是在乌尔都语上有这个问题,还是在其他字母表上也遇到了这个问题,比如阿拉伯语、东方汉字、印度教等等?除了英语以外的所有语言我不是100%确定,但你的抱怨码似乎是用ASCII编码的,ASCII只能正确显示拉丁字符。因此,你的乌尔都语sg也是ASCII格式的。那些乌尔都语消息可以工作,您是否也将它们与另一个字符串连接起来?编辑:这是您的问题。varchar不支持非拉丁字符。请尝试将其更改为nvarchar。好的,请等待我的更改,但为什么sql记录以乌尔都语(而非移动)显示确切的消息,一开始它应该在db lev产生问题使用Nvarchar的eli am(1600)如果你对VARCHAR使用乌尔都语排序,它应该显示乌尔都语。在Datbase中,它不在手机中,虽然我的手机接收其他乌尔都语消息,但没有从手机发送的乌尔都语消息。它不工作,将数据保存为数据库中字母数字字符的长字符串。长字符串是以64为基数表示的现在正在渲染什么?它正在数据库中渲染YU98YHR9H93H99HD9H9ASH9DHAS9YR090U0USJAOSFHIEW8HW之类的东西