确保Sql Server数据库中的文本字段使用特定字体

时间:2010-01-27 01:25:24

标签: asp.net sql-server sql-server-2008 fonts safari

背景短: 我终于找到了一个我遇到的错误。问题是我的网络用户使用Safari访问我的ASP.NET应用程序正在以不同于所有其他用户的字体存储他们的内容。这是一个问题,因为我用来动态创建PDF的第三方应用程序只识别2种字体(arial和times new roman),而且任何Safari插入都是不同的字体。

解决方案: 我希望做的是设置Sql Server中的列只存储一种字体。如果这是不可能的,我可以删除这篇文章并找到另一个解决方案,但这一个将是最有效的一英里。

编辑: 有一件事我忘了这很有意思。似乎设置了错误字体的唯一字符是单引号和双引号

2 个答案:

答案 0 :(得分:2)

问题与字体无关。除非您专门存储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 :(得分:1)

我唯一能想到的是你的“其他字体”用户以某种方式传递不同的信息,并且文本不被理解为ASCII。

SQL Server只存储字符串,不会存储字体信息。但是......尝试将数据存储在varbinary(max)列中,看看它是否适合您。你可以把任何东西放在varbinary(max)中...如果这不能解决你的解决方案(因为我怀疑它会),你可以继续前进,找出你的ASP.Net应用程序出了什么问题。