Asp.net 实体框架与日文文本存储

Asp.net 实体框架与日文文本存储,asp.net,sql-server-2008,entity-framework,Asp.net,Sql Server 2008,Entity Framework,可以在同一个字段中存储英语和日语吗?该字段的类型为NVARCHAR(1024)。我唯一看到的是问号 我向表中添加了另一个字段,并将其排序规则设置为日语。这似乎奏效了。但我不想要两列,我只想要一列 无论我读到哪里,NVARCHAR都可以在不更改默认排序规则的情况下保存unicode,这是真的吗?如果是,我如何告诉EF它是英语还是日语?您可以通过entity framework检查要保存在DB中的字符串的加密情况,然后决定保存位置 为了处理这个问题,我建议您使用Encoding.GetEncodin

可以在同一个字段中存储英语和日语吗?该字段的类型为NVARCHAR(1024)。我唯一看到的是问号

我向表中添加了另一个字段,并将其排序规则设置为日语。这似乎奏效了。但我不想要两列,我只想要一列


无论我读到哪里,NVARCHAR都可以在不更改默认排序规则的情况下保存unicode,这是真的吗?如果是,我如何告诉EF它是英语还是日语?

您可以通过entity framework检查要保存在DB中的字符串的加密情况,然后决定保存位置

为了处理这个问题,我建议您使用Encoding.GetEncoding方法(String)来实现它

这是一个函数,你可以测试它,让我知道它是否工作

public static bool IsUnicode(string input)
{
    foreach (char chr in input)
    {
        string str = chr.ToString();
        Encoding code = Encoding.GetEncoding("GB18030");
        if (code.GetByteCount(str) == 2)
        {
            return false;
        }
    }
    return true;
}
And here is my test result: 

string zh = "微软";
string en = "Microsoft";
bool Izh = IsUnicode(zh);   //return false
bool Ien = IsUnicode(en);   //return true
对于方法中的参数,可以访问MSDN获取正确的字符串

致以最良好的祝愿,
良信电器(Nader SGHIR)

自我提醒:盯着屏幕看太久并不能提高你解决问题的能力。唯一有问题的专栏毕竟不是Nvarchar。更换后,问题消失了,一切都按预期自动运行。