2010-01-27 1 views
0

Краткая информация: Наконец-то я обнаружил ошибку, с которой я сталкиваюсь. Проблема заключается в том, что мои веб-пользователи, которые обращаются к моему приложению ASP.NET, используя Safari, сохраняют свой контент другим шрифтом, чем все остальные пользователи. Это проблема, потому что стороннее приложение, которое я использую для динамического создания PDF-файлов, распознает только два шрифта (arial и times new roman), а все вставки Safari - это другой шрифт.Убедитесь, что текстовое поле в базе данных Sql Server использует определенный шрифт

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

EDIT: Одна вещь, которую я забыл, это интересно. Единственные символы, которые, как представляется, имеют неправильный шрифт, установленный на них, - это одинарная кавычка и двойная кавычка.

+1

Что делать шрифтам с базами данных? Ваш вопрос очень неясен. –

+0

Шрифт вызывает проблему в коде, который считывает значения из базы данных и использует их для создания dyanmic PDF. Текст выводится из текстового поля в базе данных в шрифте, который я не могу обработать. Поэтому, если я могу контролировать, какие шрифты могут быть в базе данных, мне не нужно беспокоиться о том, как код вытягивает текст из базы данных. –

ответ

2

Проблема не имеет ничего общего с шрифтами. abase текстовые поля не сохраняют информацию о шрифтах, если вы специально не храните текст в формате RTF или HTML.

Проблема в том, что существует несколько типов котировок. Обычно в программировании мы имеем дело с char 39 для одиночной кавычки и char 34 для двойной кавычки.

Текстовые процессоры (и, по-видимому, Safari) часто заменяют эти кавычки автоматически кудрявыми версиями. Смотрите таблицу ниже:

Char Value 
34  Plain double quote 
39  Plain single quote (apostrophe) 
145  Curly left single quote 
146  Curly right single quote 
147  Curly left double quote 
148  Curly right double quote 

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

1

Единственное, что я могу придумать, это ваши пользователи «другого шрифта» каким-то образом передают различную информацию, и текст не понимается как ASCII.

SQL Server сохраняет только строки, он не будет хранить информацию о шрифтах, но ... попробуйте сохранить данные в столбце varbinary (max) и посмотреть, работает ли это для вас Вы можете вставить абсолютно что-нибудь в varbinary (max) ... и если это не решит ваше решение (как я сомневаюсь, что это произойдет), вы можете перейти и выяснить, что не так с вашим приложением ASP.Net.

+0

Роб, я вспомнил после прочтения вашего ответа, что именно два персонажа кажутся шрифтами, застрявшими на них. Я редактировал вопрос, чтобы упомянуть одинарные кавычки и двойные кавычки. Возможно, для этих двух персонажей Mac используют другой код. –

+0

Да, я предполагаю, что он пишет персонажа, который не является частью набора ASCII. Возможно, вам стоит рассмотреть nvarchar вместо varchar. nvarchar позволяет использовать символы Unicode, которые должны вас покрывать. Но каждый символ затем принимает 2 байта, поэтому рассмотрите это перед внесением изменений. –

+0

Я использую «текст», а не «nvarchar» или «varchar». –

Смежные вопросы