Я хочу хранить китайские символы с html-страницы в базе данных оракула, используя концепцию ajax.
Front end : HTML & PHP.
Back end : Oracle 11G.
Характеристики Oracle:
NLS_LANGUAGE = AMERICA
NLS_CHARACTERSET = WE8MSWIN1252
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,chinese1)values(:id,:english,:chinese)");
oci_bind_by_name($sql, ':id', $id);
oci_bind_by_name($sql, ':english', $english);
oci_bind_by_name($sql, ':chinese', $chinese);
oci_execute($sql);
echo "success";
?>
Мой вопрос:
Даже если он хранится в другом формате, когда я возвращаюсь на веб-страницу, он работает и отображается правильно.
Моя проблема - это еще один инструмент под названием agile, который также получает доступ к тем же данным, поэтому преобразование не происходит, он показывает, какой формат данных хранится в базе данных.
Следовательно, я хочу хранить точно по мере ввода пользователя, не нужно никакого преобразования.