SQL Server 表中的日文/中文数据

2024-01-07

因此,我遇到了一个有趣的问题,我需要帮助来更快地使我的 SQL Server 技能达到标准。

我们有一个包含大量文本的表,所有文本均采用不同的语言。大多数数据在浏览器中正确显示,但是中文或日文的任何数据都会被浏览器完全破坏。

这是一个 ASP.old 应用程序,我们用它来显示来自运行 MS SQL Server 2005 的服务器的数据。

之前,我们也遇到过同样的问题,我们通过更改 ASP 页面中的编码来解决它。自从我们这样做以来,这些文件没有改变,但问题又出现了。因此,我必须得出结论,问题出在数据库上,因为这是自我们上次修复它以来唯一更新的内容。

到目前为止,我一直在尝试研究排序规则,但我远不是 SQL 方面的专家,所以这很困难。

如果需要,我可以提供更多信息,任何可以帮助我找到答案的信息,但缺少 URL(保密等)。

如果有人有任何想法,我将非常感激。

附加信息:

-列类型为“ntext”


排序规则仅影响排序顺序,不影响编码。您需要确定中文和日文内容的编码是什么(请参阅this http://technet.microsoft.com/en-us/library/ms180942(SQL.90).aspx)。如果不是 UCS-2,则会遇到问题(因为无法同时支持多个页面编码)。如果是 UCS-2,您需要确保 ASP 页面的编码也设置为 UTF-8(并且浏览器通过正确设置编码为 UTF-8 来识别这一点 - 请参阅查看/编码)。

或者更简单地说:如果创建内容的应用程序不使用 Unicode 字符,则在中文、日文和欧洲字符之间切换时,您将必须切换页面编码。

如果您在数据库中正确编码了 Unicode 内容,并且在页面上使用 UTF-8 编码,则显示任何特殊字符应该不会有问题(只要您在页面上使用 Unicode 字体):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我意识到经过多次编辑我不是很清楚,所以让我添加一些基础知识。

字符集是一组字符的标准化表示(例如 ASCII、UNICODE...)。

字符编码是用于存储给定字符集的字符的二进制表示形式。 ASCII 有自己的编码。 Unicode 是一个非常大的字符集,旨在支持现有的所有字符,有多种编码(UTF-8、UTF-16、UCS-2...)。

只有 Unicode 使您能够使用相同的数据库和应用程序设置同时支持西方和远东内容。然而,中文和日语的旧字符集不是 Unicode。如果您的内容不是 Unicode(例如 BIG 5),则无法在 UTF-8 编码的网页上显示它。

如果创建内容的应用程序使用一种编码(例如 BIG-5)并且数据库将其存储为 Unicode 数据,这可能会变得很棘手。如果发生这种情况,信息可能会丢失。

您甚至必须在Windows中安装相应的语言包才能正确看到字符。不幸的是,编码问题并不容易诊断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 表中的日文/中文数据 的相关文章

  • 将 Unicode 字符串转换为 ASCII

    我的字符串包含 ASCII 中未找到的字符 如 我需要一个函数将它们转换为可接受的内容 例如 a e i o u 这是因为我将根据这些字符串创建 IIS 网站 即我将使用它们作为域名 function Convert DiacriticCh
  • ☺ 不在移动版本中呈现

    我如何获得特殊角色 笑脸在移动浏览器中正确呈现 li a href http goo gl GjxlI title target blank span style font size 20px span a li 它在大多数浏览器上显示为
  • MySql 5.7 函数 UUID() 默认排序规则 - 非法混合排序规则

    Problem MySQL uuid 默认排序规则与配置连接排序规则不进行比较 我有一个使用字符集创建的数据库 表 字段 utf 8和排序规则utf8 polish ci my cnf 如下 init connect SET NAMES u
  • 将 unicode 代码点转换为 UTF-8 的最简单方法

    在 C 中将 Unicode 代码点转换为 UTF 8 字节序列的最简单方法是什么 想到的唯一方法是使用iconv从 UTF 32LE 代码页映射到 UTF 8 但这似乎有点矫枉过正 Unicode 转换不是一个简单的任务 对我来说 使用
  • 关于数据库变更的通知

    我正在尝试一种场景 其中我想使用任何用户提交的更改来更新在不同 PC 上运行的桌面 UI 例如 Application1 安装在 PC1 PC2 和 PC3 上 假设所有 PC 都运行此应用程序 假设 PC1 上的用户 1 更改数据并提交到
  • R 中带有变音符号的字符列表

    我试图将字符串中的电话 字符 出现次数制成表格 但变音符号单独作为字符制成表格 理想情况下 我有一个国际音标的单词列表 其中包含大量变音符号以及它们与基本字符的几种组合 我在这里给出了仅包含一个单词的 MWE 但对于单词列表和更多类型的组合
  • ActiveX 日历控件在 Windows 7 中不起作用

    我们有一个经典的 ASP 应用程序 它使用以下日历对象
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • $(印度卢比符号)符号打印为? (问号)使用 Apache PDFBOX 生成 pdf

    我正在尝试在使用 apache pdfbox 创建的 pdf 文件中写入一个字符串 我使用 ISO 8859 1 作为 UTF 8 编码 但它仍然在打印问号 尝试了很多并在互联网上寻找解决方案 StackOverflow 有人可以帮忙吗 提
  • 如何使用 unicode emdash 进行字符串格式化?

    我正在尝试使用 unicode 变量进行字符串格式化 例如 gt gt gt x u Some text with an emdash gt gt gt x u Some text u2014with an emdash gt gt gt
  • 如何为多用户应用程序实现简单的锁定机制?

    我真的不想在这里重新发明井 所以我寻求在多用户数据库应用程序中实现简单 行 锁定机制的想法 假设我有一个名为Products其中当然有一个ID PK 还有一个rowversion列 到目前为止尚未使用 我只想允许one用户能够编辑特定行 当
  • 存储过程和视图有什么区别?

    我对以下几点感到困惑 存储过程和视图有什么区别 在 SQL Server 中 什么时候应该使用存储过程 什么时候应该使用视图 视图是否允许创建可以传递参数的动态查询 哪一个最快 基于什么原因其中一个比另一个更快 视图或存储过程是否永久分配内
  • FAT-32 上的 Unicode 文件名?

    据我了解 NTFS 支持 Unicode 文件名 正如 Microsoft 声称的那样 UTF 16 但官方 MSDN 文档对于使用什么代码页在 FAT 32 上存储文件名 文件路径 非常模糊 这里说的是OEM 代码页 我假设是CP437
  • .Net 中包含希伯来字母和数字的 Unicode 字符串

    尝试创建包含希伯来字母和数字的字符串时出现奇怪的行为 数字将始终显示在字母的左侧 例如 string A u05E9 A Hebrew letter string B 23 string AB A B textBlock1 Text AB
  • URL 缩短器垃圾邮件

    最近 我开始通过 URL 缩短器将垃圾邮件 URL 接收到我的论坛软件中 过去 它们很容易被域阻止 但我无法完全阻止 URL 缩短器的域 因为我也看到了一些有效的用法 关于如何管理这些垃圾邮件 URL 以及使用它的垃圾邮件发送者 有什么最佳
  • 如何遍历与自身有关系的表?

    我有一个如下表 Node Id Node Name Parent Node Id 1 Root 0 2 Node1 1 3 Node2 1 4 Node3 2 5 Node4 2 6 Node5 5 7 Node6 5 8 Node7 7
  • Python UnicodeEncodeError:“ascii”编解码器无法对位置 0 中的字符进行编码:序号不在范围(128)[重复]

    这个问题在这里已经有答案了 在 Python 2 7 中 当尝试转换类型以确保其与输出架构匹配时 请参阅以下错误 UnicodeEncodeError ascii 编解码器无法对字符进行编码 0 序数不在范围内 128 试图找出原因并在木星
  • 从日期时间中获取时间并将其转换为秒?

    我正在运行 SQL Server 2005 从技术上讲 我知道如何从 tsql 日期时间中获取时间 CONVERT VARCHAR 8 GETDATE 108 AS HourMinuteSecond 问题是我有一个日期时间字段 我需要本质上
  • 当将utf-8编码的字符串从字节转换为字符时,计算机如何知道字符在哪里结束?

    给定一个以 UTF 8 编码的 Unicode 字符串 它只是内存中的字节 如果计算机想要将这些字节转换为其相应的 Unicode 代码点 数字 它如何知道一个字符在哪里结束 另一个字符在哪里开始 有些字符用 1 个字节表示 有些字符最多用
  • 将查询结果即时导出到文件

    我需要将查询结果导出到 csv 文件并将该文件放在网络共享文件夹中 是否可以在存储过程中实现此目的 如果是 则会出现另一个限制 我可以在没有系统管理员权限的情况下实现此目的 也就是不使用 xp cmdshell BCP 实用程序吗 如果 2

随机推荐