我有一张包含教师姓名的表格。有些名称就像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.
答案 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);
(在连接到您的数据库时运行)ini_set('mssql.charset', 'UTF-8');
(必须在任何和所有输出之前调用)header('Content-Type: text/html; charset=utf-8');
(必须位于<meta charset="utf-8">
- 标记数据库本身及其表可能需要设置为UTF-8。这可以通过下面的查询完成(只需要运行一次):
<head>
请记住,您的应用程序的所有部分都必须设置为相同类型的字符集,否则您将在数据库中遇到这类内容。