繁体   English   中英

在php页面中显示表格中的特殊字符

[英]Display special characters from table in php page

我有一张桌子,上面有老师的名字。 有些名称就像具有特殊字符的René Visser 当我编写用于显示名称的SQL查询时,特殊字符被替换为 我已经试过cast()但是不能正常工作。 我的查询是这样的。

$qry = mssql_query("SELECT CAST(FirstName_1 AS NVARCHAR(250)) AS Name FROM 
    tbl_teachers");

FirstName_1 nvarchar类型。 我试图将FirstName_1强制转换为VARBINARY(8000) ,然后将结果强制转换为IMAGE,如下所示。

CAST(CAST(FirstName_1  AS VARBINARY(8000)) AS IMAGE) AS Name.

您应该为SQL Server使用UTF-8编码。

然后,确保您也使用以下命令从php发送编码标头:

header('Content-Type: text/html; charset=utf-8');

您将需要指定字符集,或者如果已经指定,则将其设置为Windows-1252。 您的页面可能正在读取UTF-8编码的数据。 哪个解释了? 符号。

<head>
    <meta charset="Windows-1252">
</head>

您最有可能遇到字符集问题。 您的查询与此无关,您无需强制转换。

您需要将连接的字符集,PHP和HTML标头以及文档本身设置为同一字符集。 UTF-8很可能会涵盖您将需要的所有特殊字符。

以下是您可以做的一些事情。

  • ini_set('mssql.charset', 'UTF-8'); (在连接到数据库后运行)
  • 将PHP和HTML标头都设置为UTF-8
    • PHP: header('Content-Type: text/html; charset=utf-8'); (必须在任何和所有输出之前调用)
    • HTML: <meta charset="utf-8"> (必须位于<head> -tag内
  • 以UTF-8编码保存文档。 如果您使用的是Notepad ++,则格式为 -> 转换为UFT-8 (也可以选择不带BOM的UTF-8)
  • 数据库本身及其表可能需要设置为UTF-8。 可以使用以下查询完成此操作(只需运行一次):

    ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

请记住,必须将应用程序的所有部分都设置为相同的字符集类型,否则您将在数据库中遇到这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM