我想使用ajax概念将html页面中的中文字符存储到oracle数据库中。
Front end : HTML & PHP.
Back end : Oracle 11G.
Oracle特征:
NLS_LANGUAGE = AMERICAN
NLS_CHARACTERSET = AL32UTF8
NLS_NCHAR_CHARACTERSET = AL16UTF16
以上特征无法改变。
当我尝试使用表单提交存储中文字符时,存储成功,如果我尝试通过ajax存储,我会在数据库中收到奇怪的字符。
在ajax页面中我添加了这一行:
header("Content-type: text/html; charset=utf-8");
并在html页面中添加了以下行:
<meta http-equiv="Content-type" value="text/html; charset=utf-8">
我经历了很多堆栈溢出建议,但没有运气。
请告诉我如何解决这个问题。
提前致谢。
代码:HTML代码。
<html>
<head>
<meta http-equiv="Content-type" value="text/html; charset=utf-8">
<title>Test</title>
<script src="jquery.min.js"></script>
<script>
function addForm()
{
var english=document.getElementById('txt_english').value;
var id=document.getElementById('txt_id').value;
var chinese=document.getElementById('txt_chinese').value;
$.ajax(
{
type : "POST",
async: false,
url :"ajax/ajax_add_form.php",
data :
{
english:english,
chinese:chinese,
id:id
}
}).done(
function(html)
{
alert(html);
});
}
</script>
</head>
<body>
<input type='text' name='txt_id' id='txt_id' value='' /><br>
<input type='text' name='txt_english' id='txt_english' value='' />
<input type='text' name='txt_chinese' id='txt_chinese' value='' />
<button type="button" onclick="addForm()">Click Me!</button>
</body>
</html>
PHP代码:ajax / ajax_add_form.php
<?php
header("Content-type: text/html; charset=utf-8");
include("../config.php");
extract($_REQUEST);
$sql=oci_parse($conn,"insert into test(id,english,chinese)values('".$id."','".$english."','".$chinese."')");
oci_execute($sql);
echo "success";
?>