gpt4 book ai didi

php - AJAX+PHP 中的阿拉伯语

转载 作者:可可西里 更新时间:2023-11-01 00:14:42 25 4
gpt4 key购买 nike

我尝试使用 Ajax 从 PHP 发出阿拉伯文本,但它显示正方形。来自 http://www.w3schools.com/ajax/ajax_aspphp.asp 的示例:

主页

<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script>
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

xmlhttp.open("GET","autoAJAX.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<h3>Start typing a name in the input field below:</h3>
<form action="">
First name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions:<br> <span id="txtHint"></span></p>

</body>
</html>

仅用于文件 ( gethint.php ) 时使用类似阿拉伯语

$a[]="المغرب";
$a[]="عمان";
$a[]="مصر";
$a[]="العراق";
$a[]="ليبيا";

当我们运行页面时,它会显示像这样的方 block ��


我该如何解决这个问题?


如果 (gethint.php) 从 oracle 数据库获取的例子

    <html>

<head>

<title></title>
</head>
<body>

<?php

//get the q parameter from URL
$q=$_REQUEST["q"];
include("connect.php");
$sqlSerchStaff = "select * from STAFF_INFO where STAFF_ID = :ID_v";
$stSerchStaff = oci_parse($con, $sqlSerchStaff);
oci_bind_by_name($stSerchStaff,':ID_v', $q);
if (!@oci_execute($stSerchStaff, OCI_DEFAULT)) {
$e = oci_error($stSerchStaff); // For oci_execute errors pass the statement handle
print htmlentities($e['message']);
print"<br> الرجاء التأكد من الرقم الوظيفي";
}
else
{

while($row = oci_fetch_array($stSerchStaff))
{
$VID1 = $row['STAFF_NAME_AR'];

}

$rowNo = oci_num_rows($stSerchStaff);
if ($rowNo == 0||$rowNo = null)
{
$response ="الرقم الوظيفي غير مدرج في القائمة";
//$response ="no suggestion";
//$response ="no Data";
}
else
{
//$rowNo = oci_num_rows($stSerchStaff);
$response = $VID1;
}
echo $response;

}

?>




</body>
</html>

如果我保存 gethint.php php UTF-8编码它将在 print"<br> الرجاء التأكد من الرقم الوظيفي"; 中显示阿拉伯语和 $response ="الرقم الوظيفي غير مدرج في القائمة"; , 但如果它来自数据库则不会

我尝试使用这个 //$response=iconv("UTF-8","windows-1250",$response);
but it not working

我用的是oracle 10g我的数据库 NLS_CHARACTERSETAR8MSWIN1256

NLS_NCHAR_CHARACTERSETAL16UTF16

最佳答案

你在 HTML 中写的是你的字符都是拉丁文:

<content="text/html; charset=windows-1252">

我认为您不想这样做,因为您使用的字符是 not in that charset .

尝试使用:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

您还提到您正在使用 Oracle 数据库,因此您可能需要检查该数据库和该表的排序规则。查看Oracle docs获取更多信息。本质上,您需要确保 Oracle 知道您正在将非拉丁字符放入表中。

如果在创建表时设置 CHARSET,它会比 converting the charset later 容易得多。 .

关于php - AJAX+PHP 中的阿拉伯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com