【问题标题】:Viewing German words on webpage [duplicate]在网页上查看德语单词 [重复]
【发布时间】:2018-10-29 18:58:08
【问题描述】:

我有一个 MS SQL 表用于翻译我的网页,当我将语言更改为德语时,有些单词在 DB 中没有正确显示:

EL_ID   TEXT_EN TEXT_DE
el10    Reset   Löschen

但是当我在我的 html/php 页面中使用时,它没有正确显示:

[10] => Array
        (
            [0] => el10
            [1] => L�schen
        )

在我的网页中我被激活了:

<!DOCTYPE html>
<HTML>
  <HEAD>
    <meta charset="UTF-8">
    <TITLE>
    </TITLE>
...

问题是从DBHTML演示中执行的数据?

【问题讨论】:

  • phpbestpractices.org/#utf-8 - 简而言之,您的编码错误。应该显示一个德语变音符号。
  • 我使用 ADODB 进行 DB 连接我需要在我的连接字符串中插入以下参数 $db-&gt;setConnectionParameter('CharacterSet','UTF-8');

标签: php html sql-server unicode


【解决方案1】:

我发现this 是解决任何编码问题的好资源:

  • 对于 HTML 内容,指定 UTF-8 作为编码:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
  • 将 UTF-8 设置为所有数据库连接的默认字符集。然而,它看起来像 MSSQL doesn't really support UTF-8

【讨论】:

  • 我解决了这个问题,因为我使用的是 ADODB 我需要为数据库连接设置正确的参数$db-&gt;setConnectionParameter('CharacterSet','UTF-8');
【解决方案2】:

三个问题:

  • TEXT_DE 列的类型是什么?应该是 nvarchar 或 ntext

  • 您如何在 TEXT_DE 列中添加值 - 从文件复制和粘贴 - 可能文件保存在不同的编码系统中

  • 什么是 DB 或该表的排序规则?运行以下查询

    SELECT CONVERT (varchar, SERVERPROPERTY('collation'));

    SELECT name, collation_name FROM sys.databases;

【讨论】:

  • 我找到了我使用ADODB的解决方案需要插入$db-&gt;setConnectionParameter('CharacterSet','UTF-8');
猜你喜欢
  • 2020-04-14
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
相关资源
最近更新 更多