Структура сущности и хранение японского текста - PullRequest
4 голосов
/ 17 февраля 2012

Можно ли хранить английский и японский в одном поле?Поле имеет тип NVARCHAR (1024).Единственное, что я вижу, это вопросительные знаки.

Я добавил еще одно поле в таблицу и установил его сопоставление с японским.Это похоже на работу.Но я не хочу 2 столбца, я хочу только 1.

Везде, где я читаю, NVARCHAR может хранить юникод без изменения параметров сортировки по умолчанию, это правда, и если да, то как мне сказать EF, что это английский или японский?

1 Ответ

0 голосов
/ 17 февраля 2012

вы можете проверить шифрование строки, которую вы хотите сохранить в БД, с помощью Entity-Framework, а затем решить, где вы ее сохраните!

Чтобы решить эту проблему, я предлагаю вам использовать 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

Для параметра в методе вы можете посетить MSDN по адресу http://msdn.microsoft.com/zh-cn/library/aa332097(VS.71).aspx, чтобы получить правильную строку.

С наилучшими пожеланиями, Nader SGHIR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...