实体框架和存储日文文本

时间:2012-02-17 16:32:28

标签: asp.net sql-server-2008 entity-framework

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

我在表格中添加了另一个字段,并将其整理为日语。这似乎有效。但我不想要2列,我只想要1.

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

1 个答案:

答案 0 :(得分:0)

您可以通过实体框架检查您希望在DB中保存的字符串的加密,然后决定保存它的位置!

为了解决这个问题,我建议你使用Encoding.GetEncoding Method(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

对于方法中的参数,您可以访问http://msdn.microsoft.com/zh-cn/library/aa332097(VS.71).aspx处的MSDN以获取正确的字符串。

最诚挚的问候, Nader SGHIR