【发布时间】:2011-05-31 15:14:28
【问题描述】:
我正在尝试拼凑神秘的字符串 â??我在我们的数据库中看到了很多 - 我很确定这是字符编码之间转换的结果,但我并不完全肯定。
用户可以在 Ext-Js 富文本编辑器中输入文本(或剪切和粘贴)。数据被发布到一个将其持久化到数据库的 severlet 中,当我在数据库中查看它时,我看到了那些奇怪的字符......
-
如果我能够发现正确的编码,是否有任何方法可以将它们解码回其原始含义 - 或者在转换过程中是否丢失了位或字节?
用户正在从多个版本的 MS Word 和 PDF 中剪切和粘贴。编码是否跟随用户从哪里复制?
谢谢
网站是 UTF-8 我们使用的是 ms sql server 2005;
SELECT serverproperty('Collation') -- 服务器默认排序规则。 Latin1_General_CI_AS
SELECT databasepropertyex('xxxx', 'Collation') -- 数据库默认 SQL_Latin1_General_CP1_CI_AS
和专栏:
Column_name Type Computed Length Prec Scale Nullable TrimTrailingBlanks FixedLenNullInSource Collation
text varchar no -1 yes no yes SQL_Latin1_General_CP1_CI_AS
的非 Unicode 等价物 nchar、nvarchar 和 ntext 数据类型 下面列出了 SQL Server 2000 中的。 当 Unicode 数据插入到一个 这些非 Unicode 数据类型的列 通过命令字符串(否则 称为“语言事件”),SQL 服务器将数据转换为数据 使用相关的代码页键入 与列的排序规则。什么时候 字符不能在 a 上表示 代码页,它被替换为 问号 (?),表示数据 已经丢失。外观 意外的字符或问题 您数据中的标记表示您的数据 已从 Unicode 转换为 在某些层非 Unicode,而这 转换导致丢失 字符。
所以这可能是问题的根本原因……而且我们这方面解决起来并不容易。
【问题讨论】:
-
缺少可能非常相关的信息:DBMS、DB 字符集、网站字符集、信息语言(英语、法语、日语...)。
-
您还可以做一个测试:在 Microsoft Word 中输入
–—‘’‚“”„†‡•…‰‹›€™并尝试找出进程的哪个点损坏。
标签: javascript sql-server encoding extjs character-encoding