【问题标题】:How can we display Japanese (Hiragana) on our website?我们如何在我们的网站上显示日语(平假名)?
【发布时间】:2013-02-11 16:34:57
【问题描述】:

我们将在我们的网站上举办一场向国际社会开放的比赛。我们的一小部分用户是日本人,他们要求能够使用平假名在我们的网站上发布 cmets。

目前,他们的 cmets 显示为 ??????问号。

我们使用的是运行 IIS 7 和 Coldfusion 10 的 Win 2008 服务器。存储 cmet 的数据库(也显示为??????问号)是 SQL Server 2012。

该网站当前使用的是 UTF-8 字符集:

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

不确定我需要在哪里进行更改。 D B? CF?视窗? IIS?网站代码?有什么想法吗?

我发现了其他类似的问题,但它们通常与 WordPress、Joomla 或完全是日文的网站有关。

谢谢!

【问题讨论】:

标签: html iis-7 coldfusion windows-server-2008 sql-server-2012


【解决方案1】:

您可能声称您使用的是 UTF-8,但您是真的吗?如果您的数据库、字符串(可能需要告知编程语言将字符串作为 UTF-8 处理)和实际输出编码不是 UTF-8,那么您将无法获得正确的结果。

那么这里是字体问题;许多字符并未包含在每种字体中,因此无法在很多计算机上使用。

还可以尝试将这样的标题设置为实际标题。

【讨论】:

  • 抱歉这个愚蠢的问题,但你是什么意思“尝试将这样的标题设置为实际标题?”
  • 尼克,他的意思是设置实际的 HTTP 标头,使用 cfheader
【解决方案2】:

排序规则与此无关,字体也没有(您的 unicode 数据正在进入数据库中)。所以...

您应该通过 JDBC 驱动程序之一而不是 ODBC 与您的数据库通信。

您的数据库应该支持 unicode,并且您必须使用支持 unicode 的数据类型来保存数据(例如,对于 sql server,请使用“N”数据类型,如 Nvarchar 等)。

我假设您使用的是 cfqueryparam(毕竟它是一个面向用户的表单),因此您需要在 cfadmin 中为该数据源启用“启用高位 ASCII 字符”...选项(在高级菜单下)。

【讨论】:

  • 启用高位 ASCII 字符有缺点吗?例如,如果有人尝试在 varchar 字段中输入日文字符,我们是否会出错,或者它是否仍会被弃用为问号?我可以更改我的数据库表和查询​​以使用 nvarchar 而不是 varchar 用于此表单,但我不想因为在 CF Admin 中进行更改而破坏其他内容。
  • 另外,我们的 SQL Server 实例正在使用 SQL_Latin1_General_CP1_CI_AS 排序规则。我读到 SQL Server 没有 UTF-8 排序规则,但如果我们使用“n”数据类型(例如 nchar、nvarchar 等),这听起来不是问题。对吗?
  • 不,它只影响 cfqueryparam 的使用 & 然后只允许 unicode。您还可以在 cfquery 中使用 SQL 提示将“文本”更改为 N“文本,但我不建议这样做,因为 cfqueryparam 是面向用户的表单数据的最佳实践。 collat​​ion 对数据输入没有影响,仅对排序有影响。自从我混合代码点以来已经有一段时间了,但我认为那些日语条目会排序到最后。
猜你喜欢
  • 2013-11-05
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 2012-04-11
  • 2013-08-05
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多