Эй, я попробовал код, который использует pdo с php, и на локальном wamp-сервере он работает отлично и показывает иврит и английский, но когда я размещаю код в Интернете, он показывает мне иврит в виде странных символов, подобных этому ׳ ™ ׳ — ׳ • ׳ “ ׳˜׳ ™ ׳ ™ ׳’׳¨׳ ™ ׳ ׳׳׳׳׳׳
и таблица wamp sql, и таблица web sql установлены в utf8_general_ci
это мой код:
<?php
$db = new PDO('mysql:host=127.0.0.1;dbname=android;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $db->query('SELECT * FROM sample');
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$out = '';
if (is_array($results) && count($results) > 0)
{
foreach ($results as $sqlRow)
{
$out .= $sqlRow['id']."|||".$sqlRow['name']."|||";
}
$out = substr($out, 0, -3);
}
echo $out;
?>
Проблема, вероятно, не в MySQL, а в PHP на вашем веб-сервере. Попробуйте установить это свойство в вашем php.ini
:
default_charset = "utf-8"
Подробнее об этой собственности Вот.
change to this row
for me it is helped
This after you set the table utf-8
$ conn = новый PDO («mysql: host = localhost; dbname = $ database; charset = UTF8», «root», «», массив (PDO :: MYSQL_ATTR_INIT_COMMAND => «SET NAMES utf8»)) или die («no connction «);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);