Отображение арабского текста в веб-приложении без изменений в БД - PullRequest
2 голосов
/ 15 июля 2009

Когда пользователь вводит арабское имя и пароль, я должен получить данные для этого пользователя. В Java я использую кодировку utf-8 Я должен извлекать данные в виде арабского текста из базы данных. Я использую базу данных sql server 2005. Столбец установлен как varchar вместо nvarchar. Так как база данных указывает на производство. Я не мог изменить тип столбца на nvarchar. Есть ли способ конвертировать ???? текст извлекается из базы данных в арабский текст без внесения изменений в базу данных. Может ли кто-нибудь помочь в этом.

Bhoomesh

Ответы [ 5 ]

2 голосов
/ 15 июля 2009

Как вы хранили текст в базе данных? По сути, звучит так, как будто вы должны изменить базу данных. Если вы используете varchar с сопоставлением не в Юникоде, то вы или ограничены хранением текста, который соответствует этому сопоставлению или вы должны использовать ужасно ненадежно и принципиально «неправильные» преобразования, которые рассматривают текст как двоичные данные.

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

Поговорите с администраторами вашей базы данных, объяснив, что схема в корне неверна - для поддержки полного Unicode вам необходимо изменить схему. В конце концов вам придется пройти через это, так что вы можете тем временем спасти себя от неприятных хаков.

2 голосов
/ 15 июля 2009

Не уверен, но, вероятно, вы можете преобразовать utf-8 в ANSI и сохранить в столбце varchar. Во время чтения конвертируйте его обратно в utf-8.

Я не знаю, возможно ли это или нет, но попробуйте поискать в Google.

1 голос
/ 15 июля 2009

Я не знаю намного больше о Java, но ваша проблема более общая.

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

0 голосов
/ 15 июля 2009

Есть также UTF-7, который использует только символы US-ASCII. Используя это, вы можете избежать проблем с кодовыми страницами.

0 голосов
/ 15 июля 2009

Вы можете попробовать использовать префикс N для вставки строк в БД. Как это: N'ome текст ".

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