2014-11-24 4 views
0

Я пытаюсь ввести हिन्दी в свой sqltable. я сделал сверку, как utf8_unicode_ci в таблице , когда я эхо переменной на странице PHP ее показывая हिन्दी , но в базе данных он получает странные значения, как «& # 2361; & # 2367; & # 2344»sqldatabse не принимает неанглийских символов

Мои код выглядит следующим образом:

<?php 
include("connection.php"); 
mysqli_set_charset($con,'utf8'); 

$var=$_POST['var']; 
$var1=$_POST['var1']; 

$query="insert into test values('$var','$var1')"; 


if($result=mysqli_query($con,$query)) 
{ 
echo $var; 
echo $var1; 

echo "success"; 
} 


?> 

ответ

1

Это те объекты HTML, которые вы получаете из браузера, и отображаются в любом браузере как символы Unicode.

Даже если вы будете читать их из базы данных только для отображения их в HTML (все может выглядеть нормально), лучше не иметь такого вида мусора в базе данных.

В HTML форме поставить форму в UTF-8 и сказать, что сервер принимает UTF-8 обратно:

<form action="... .php" method="post" accept-charset="UTF-8"> 

(я предполагаю, что страница уже поставляет в UTF-8, его Content-Type .)

$_POST будет содержать чистые символы Unicode вместо сущностей.


<?php 
header("Content-Type: text/html; charset=utf-8"); 

// Сразу после подключения mysql_query ("SET NAMES utf8"); ... ?>

+0

спасибо, что я получаю требуемый ввод в базе данных, но не могу извлечь и отобразить его показ ??? когда я эхо от php – ashwinbhy

+0

Удалось ли вам наконец? Кажется, что изначально ваш PHP не был доставлен как UTF-8. Или это еще определение базы данных? –

+0

Мне удалось получить utf-8 enteries в базах данных. Но когда я его извлечу, он не отобразит его. Его показ ???? charachters. – ashwinbhy

0

Используйте 8-битный UCS/Unicode формат преобразования, который работает отлично подходит для любых (а в большинстве) языков

utf8_general_ci

Это может помочь.

Смежные вопросы