如何使用PHP在Oracle 11G数据库中存储/检索中文字符?

时间:2016-08-10 07:56:58

标签: php jquery ajax oracle

我想使用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";
?>

0 个答案:

没有答案