Результат Php-sql в joomla отображается в вопросительных знаках [duplicate]

Вы даже можете создать временный файл с использованием системного свойства, которое не зависит от используемой ОС.

File file = new File(System.*getProperty*("java.io.tmpdir") +
                     System.*getProperty*("file.separator") +
                     "YourFileName.txt");
9
задан Suneth Kalhara 4 August 2012 в 06:54
поделиться

7 ответов

попробуйте следующее:

после подключения к mysql, выполните этот запрос, чтобы убедиться, что вы используете UTF8:

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");

убедитесь, что в HTML (глава ) вы используете правильную кодировку, попробуйте:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

, если это не помогает, попробуйте различную кодировку, такую ​​как ISO-8859-1

15
ответ дан MilMike 20 August 2018 в 21:49
поделиться

mysql_query ("SET NAMES 'utf8'"); mysql_query ("SET CHARACTER SET 'utf8'");

Работал и для меня тоже!

В моем случае я устанавливаю следующее

Database engine: InnoDB
 Character set: Latin1
 Collation: latin1_spanish_ci

 Tables
  Character set: Latin1
  Collation: latin1_spanish_ci
     (on all varchar fields)

Тогда Я изменил свое подключение к MySQL как:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
    $hostname_connName = "localhost";
    $database_connName = "*database_name*";
    $username_connName = "*database_username*";
    $password_connName = "*database_pw*";
    $connName = mysql_pconnect($hostname_connName, $username_connName, $password_connName) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
?>

И добавил строки запроса, упомянутые MilMike, чтобы заставить это работать!

1
ответ дан Chex 20 August 2018 в 21:49
поделиться
  • 1
    Не добавляйте & quot; thanks & quot; в качестве ответов. Они фактически не дают ответа на вопрос и могут восприниматься как шум его будущими посетителями. Вместо этого upvote отвечает , который вам нравится. Таким образом, будущие посетители вопроса увидят более высокий подсчет голосов на этот ответ, и ответчик также будет вознагражден точками репутации. См. . Почему важно голосование . – Filnor 2 March 2018 в 08:18
  • 2
    Пожалуйста, не добавляйте & quot; благодарю вас & quot; как ответ. Вместо этого проголосуйте за ответы, которые вы найдете полезными. - Из обзора – Boris Schegolev 2 March 2018 в 13:41

Оставляя это здесь для тех, кто приходит на этот сайт через Google, потому что у них такая же проблема, но вместо этого использует PDO (например, я) - с вами должно быть хорошо:

$dns = "mysqli:host=localhost;dbname=db_name";
$pdo = new PDO($dns, 'db_user', 'db_pass',
        array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$pdo->exec("SET CHARACTER SET 'utf8'"); 
3
ответ дан eyecatchUp 20 August 2018 в 21:49
поделиться

Вам не нужно бросать таблицы или что-то еще. Используйте MySQL Workbench и перейдите к каждой таблице. Измените значение Collation на utf8 - сопоставление по умолчанию или utf8 - общий ci. Затем сделайте то же самое для каждого столбца с типом Varchar - он находится в нижней части окна.

1
ответ дан Filip 20 August 2018 в 21:49
поделиться

Попробуйте следующее:

mysqli_set_charset($con, "utf8");

После подключения к DB.

7
ответ дан Marios 20 August 2018 в 21:49
поделиться

Я потратил много часов, пока не понял это.

Вступление: греческие символы ошибочно отображались в mysql. Я применил qxxx-ответ на PHP и отлично работал. Затем мне пришлось перенести все на новый хост, а затем проблема снова появилась.

Что случилось?

Кодировка схемы MySQL была установлена ​​на латинский. Хранимые процедуры унаследовали кодировку схемы MySQL для своих параметров.

Итак, что я сделал:

  1. Выпало процедуры и функции MySQL (убедитесь, что вы создаете резервную копию своего кода)
  2. Измененная кодировка по умолчанию MySQL (с использованием MySQL Workbench, щелкните правой кнопкой мыши по имени вашей базы данных - есть значок db ..)
  3. повторно создал процедуры / функции MySQL
]

Кроме того, я оставил неповрежденным исправление qxxx!

1
ответ дан Paschalis 20 August 2018 в 21:49
поделиться

Я столкнулся с той же проблемой при реализации греческих символов. Такие решения, как mysql_ query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");, не работали для меня. После Googling я обнаружил, что набор символов для сопоставления базы данных должен быть сделан greek_general_ci вместе с полем, в котором данные будут храниться как categoryname и т. Д. Это решило мою проблему.

0
ответ дан sadaf2605 20 August 2018 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: