php作为数据库字符集插入sql\u latin1\u general\u cp1\u ci\u

php作为数据库字符集插入sql\u latin1\u general\u cp1\u ci\u,php,sql-server,character-encoding,Php,Sql Server,Character Encoding,我有一个sql数据库,sql\u拉丁1\u通用\u cp1\u ci\u作为排序规则。 数据库将包含大约3种语言(英语、土耳其语、阿拉伯语)。 在主页上,我将字符集设置为utf-8,如下所示: header('Content-Type: text/html; charset=UTF-8'); <meta charset="utf-8"> 当我输入英语单词时,没有问题 但当我使用其他语言时,这些单词会作为不清楚的字符插入 我试图使用iconv,但它不起作用 $name = iconv

我有一个sql数据库,sql\u拉丁1\u通用\u cp1\u ci\u作为排序规则。
数据库将包含大约3种语言(英语、土耳其语、阿拉伯语)。

在主页上,我将字符集设置为utf-8,如下所示:

header('Content-Type: text/html; charset=UTF-8');
<meta charset="utf-8">
当我输入英语单词时,没有问题
但当我使用其他语言时,这些单词会作为不清楚的字符插入

我试图使用iconv,但它不起作用

$name = iconv("UTF_8","Windows-1252",$name);
//and
$name = iconv("UTF_8","UCS-2LE",$name);
如果sql\u latin1\u general\u cp1\u ci\u as不是,那么在我的情况下,最好的排序规则是什么?是否有另一种不更改排序规则的解决方案

我希望我的问题不要重复,因为我在这里读了很多问题,但没有找到正确的答案

谢谢。

你可以试试这个:

  • 确保“cust”列为nvarchar()

  • 用UTF-8编码html和php文件(这一步我通常使用记事本+)

  • 转换输入数据

代码(基于您的示例):


您可以尝试以下方法:

  • 确保“cust”列为nvarchar()

  • 用UTF-8编码html和php文件(这一步我通常使用记事本+)

  • 转换输入数据

代码(基于您的示例):



ODBC是SQL Server连接唯一可能的解决方案吗?是的,现在是。ODBC是SQL Server连接唯一可能的解决方案吗?是的,现在是。非常感谢(Zhorov)就是这样:)。非常感谢(Zhorov)就是这样:)。
$name = iconv("UTF_8","Windows-1252",$name);
//and
$name = iconv("UTF_8","UCS-2LE",$name);
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta charset="utf-8">
<?php
    ...
    $name = $_POST['cust_name'];
    $name = iconv('UTF-8', 'UTF-16LE', $name);
    $name = bin2hex($name);
    $sql  = "INSERT INTO inv01 (cust) VALUES (CONVERT(nvarchar(MAX), 0x".$value."))";
    ...
?>
</head>
<body></body>
</html>