Как преобразовать иностранные символы в английские символы в SQL Query? - PullRequest
1 голос
/ 17 марта 2011

Мне нужно создать функцию sql, которая преобразует специальные символы, международные символы (французский, китайский ...) в английский.

Есть ли какая-нибудь специальная функция в sql, могу я получить ??

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Я думаю, что короткий ответ: вы не можете, если не сильно сузите свои требования.Кажется, вы хотите взять образец текста A и преобразовать его в латинизированный текст B.

Есть несколько проблем для решения:

  • Языки обычно нероманизированный на основе одного символа.Правильное произношение символа часто зависит от символов и слов вокруг него, и даже может иметь специальные правила только для одного слова (изучение английского может быть сложным, потому что оно заполнено ими, заимствуя слова из многих языков без нормализации орфографии).

  • Даже если вы кодируете правила для каждого языка, который хотите поддерживать, у вас все еще есть гомографии, слова, которые пишутся с использованием абсолютно одинаковых символов, но имеют различное произношение (и, следовательно, латинизацию) в зависимости отна то, что имелось в виду - например, «свиноматка», означающая свинью, или «свиноматка» (где w молчит), означающая сажать семена.

  • И затем вы сталкиваетесь с проблемой того, какой язык вы латинизируете: символы и даже слова не уникальны для одного языка, но фактическое значение и латинизация могут различаться.Тот факт, что многие языки включают заимствованные слова из тех языков, с которыми они разделяют символы, усложняет любую попытку автоматически определить, какой язык вы пытаетесь латинизировать.

Учитывая все эти трудности, что вына самом деле хотите достичь (какую проблему вы решаете)?

Вы упоминаете французский язык среди языков, которые вы хотите «конвертировать» в английский - но французский (с акцентированными символами) уже написан на латинице.Даже в повседневных словах, используемых в английском языке, иногда используются акцентированные символы, хотя они достаточно редки, чтобы понимать значение и произношение, даже если они опущены (например, резюме).

Действительно ли ваша проблема в том, что вы можете 'хранить юникод / ​​расширенный ASCII?Есть множество способов исправить или обойти это.

2 голосов
/ 18 марта 2011

Если вам нужны английские имена для символов, это достижимая цель, поскольку все они опубликовали имена как часть стандарта Unicode.

См. Например:

В таком случае ваша задача состоит в том, чтобы просто превратить список символов Юникода в таблицу, содержащую около 100 000 строк.К сожалению, имена, которые вы получите, будут такими, как ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM.

С другой стороны, если вы действительно хотите перевести смысл, вам нужно взглянуть на программное обеспечение машинного перевода.И у Microsoft, и у Google есть хорошо известные предложения по облачному переводу, а также есть несколько других продуманных продуктов.

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