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

时间:2015-09-07 12:39:04

标签: php sql-server sql-server-2008 special-characters

我有一张包含教师姓名的表格。有些名称就像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.

3 个答案:

答案 0 :(得分:3)

您应该为SQL服务器使用UTF-8编码。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

你很可能有一个字符集问题。您的查询与此无关,您无需投射它。

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

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

  • //TEST Spinner spinner_fixture1= (Spinner)dialog.findViewById(R.id.spinner_fixture1); mySpinnerAdapter spinner= new mySpinnerAdapter(c,R.layout.spinner_custom,fixtureTeamList); spinner_fixture1.setAdapter(spinner); (在连接到您的数据库时运行)
  • 将PHP和HTML标头都设置为UTF-8
    • PHP:ini_set('mssql.charset', 'UTF-8');(必须在任何和所有输出之前调用)
    • HTML:header('Content-Type: text/html; charset=utf-8');(必须位于<meta charset="utf-8"> - 标记
  • 以UTF-8编码保存文档。如果你在Notepad ++中这样做,那就是格式 - &gt; 转换为UFT-8 (您也可以选择没有BOM的UTF-8)
  • 数据库本身及其表可能需要设置为UTF-8。这可以通过下面的查询完成(只需要运行一次):

    <head>

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