Уважаемый EBAG, у нас есть один арабский блок в Unicode , который содержит как арабский, так и персидский символы.
06CC - персидский ی
и 064A - арабский ي
Клавиатура Windows по умолчанию использует code page 1256
для арабских символов, для которых 064A
по умолчанию ي
для пользователей как на арабском, так и на арабском, потому что арабские пользователи гораздо больше, чем персидские.
ISIRI
создайте стандартную клавиатуру ISIRI 9147
и нанесите на нее арабский и персидский Yeh
, но символы Perisan ی
по умолчанию. Персидские пользователи, использующие стандартную клавиатуру, будут помещать (и использовать) стандартную персидскую ی while the rest of them use arabic
ي`.
Как вы обычно говорили, когда мы сохраняем данные в базу данных, мы меняем арабский ي
на персидский ی
, и когда мы читаем из него, мы просто выбираем персидский, так что все верно.
Второй подход заключается в использовании файла JavaScript в веб-приложении для управления пользовательским вводом. большинство персидских сайтов используют этот подход для сохранения символов в базе данных. В этом методе пользователю не нужно устанавливать раскладку клавиатуры для персидской или арабской клавиатуры. Он / она просто положил клавиатуру на English
, а затем в JavaScript
разработчик файла проверил, какой символ ему эквивалентен. Здесь вы можете найти ISIRI 9147 javascript
для веб-приложения и персидский гид для его использования.
Третий подход заключается в использовании экранной клавиатуры, которая работает так же, как и предыдущая, с пользовательским интерфейсом и обычно подходит для тех, кто не знаком с персидской клавиатурой.
Четвертый подход заключается в поиске обоих диалектов. Как вы знаете, когда вы устанавливаете MySql
или SQL Server
, вы можете установить collation
, а также у вас есть возможность поддерживать диалект (и чувствительность к регистру). если вы включите арабскую сортировку с диалектом, вы можете получить результат для них обоих, и обычно это отлично работает в sql server
, я не проверяю его в MySql
. Это пока лучшее решение.
но на вашем месте я реализую простой sql function
, который получает nvarchar
и возвращает nvarchar
. тогда я звоню, когда хочу записать данные. и всякий раз, когда вы хотите прочитать, вы можете пойти на стандартный.
Извините за длинный хвост.