Вы даже можете создать временный файл с использованием системного свойства, которое не зависит от используемой ОС.
File file = new File(System.*getProperty*("java.io.tmpdir") +
System.*getProperty*("file.separator") +
"YourFileName.txt");
попробуйте следующее:
после подключения к 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
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, чтобы заставить это работать!
Оставляя это здесь для тех, кто приходит на этот сайт через 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'");
Вам не нужно бросать таблицы или что-то еще. Используйте MySQL Workbench и перейдите к каждой таблице. Измените значение Collation на utf8 - сопоставление по умолчанию или utf8 - общий ci. Затем сделайте то же самое для каждого столбца с типом Varchar - он находится в нижней части окна.
Попробуйте следующее:
mysqli_set_charset($con, "utf8");
После подключения к DB.
Я потратил много часов, пока не понял это.
Вступление: греческие символы ошибочно отображались в mysql. Я применил qxxx-ответ на PHP и отлично работал. Затем мне пришлось перенести все на новый хост, а затем проблема снова появилась.
Что случилось?
Кодировка схемы MySQL была установлена на латинский. Хранимые процедуры унаследовали кодировку схемы MySQL для своих параметров.
Итак, что я сделал:
Кроме того, я оставил неповрежденным исправление qxxx!
Я столкнулся с той же проблемой при реализации греческих символов. Такие решения, как mysql_ query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
, не работали для меня. После Googling я обнаружил, что набор символов для сопоставления базы данных должен быть сделан greek_general_ci
вместе с полем, в котором данные будут храниться как categoryname и т. Д. Это решило мою проблему.