Mit kell tennem, hogy a
CREATE TABLE IF NOT EXISTS `proba` (
`kod` int(5) DEFAULT NULL,
`text_hu` text CHARACTER SET utf8 NOT NULL COMMENT 'utf-8 szöveg',
UNIQUE KEY `kod` (`kod`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci;
táblából az utf-8 kódolású csv importálása után a phpmyadmin/tartalom alatt a rekord/mező-ben
normálisan látszó "őŐűŰ" betűket ki tudjam olvasni utf-8 kódlapú php-ben?Mert
rawurlencode($s_mysql_fetch_array['text_hu'])
és
strtr($s_mysql_fetch_array['cim_hu'], get_html_translation_table(HTML_ENTITIES) )
esetén
%3F%3F%3F%3F
az eredmény, ami ugye "
????
"-el egyenlő.
Csak a(z összes) %FF alatti karakter olvasható ki. (... hát le a kalappal!)
Annak ellenére, hogy:
az
include("syilus.php");
a következő:
<?php ?>
<style type="text/css">
@charset "UTF-8";
</style>
<?php ?>
és ezután az
echo 'Current charset: '.$_SESSION['charset'].'<br>';
eredménye: UTF-8 (sőt, az összes böngésző szerint is ez).
Ha exportálom a rekordokat, akkor a kapott file utf-8 kódolású,
és ott van benne az összes (futási időben nem elérhető) "őŐűŰ".
Mi az épeszű teendő???
(legyen CSV-motor?)
--------------------------------
- MySQL
-
Szerver: Localhost via UNIX socket
Szerver verzió: 5.1.41-3ubuntu12.6
Protokoll verzió: 10
MySQL karakterkészlet: UTF-8 Unicode (utf8) - Webszerver
-
Apache/2.2.14 (Ubuntu)
MySQL kliens verzió: 5.1.41
PHP-kiterjesztés: mysql - phpMyAdmin
- Verziószám: 3.3.2deb1
- 915 megtekintés
Hozzászólások
A my.cnf-ben a client resz alatt meg van-e adva, hogy default-character-set=utf8 es/vagy a php-ban a mysql_select_db... utan van-e mysql_query("SET NAMES 'utf8'") ?
- A hozzászóláshoz be kell jelentkezni
Köszönöm!
Először az "és" volt, működött, aztán my.cnf-ben kikommenteltem a beírt sort, reboot,
és csak a "vagy" elég lett:
mysql_query("SET CHARACTER SET 'utf8'");
és nem kell trükközni (itt most) html_translate-tel és rawurlencode-dal.
Ennek örülök, mert a publikus szerveren csak adatbázis szintű jogaim vannak.
P.S.:
Azért így, mert a SET NAME mintha már lett volna nekem tegnap reggel,
de így szimplán nem működött nálam - ezért azt hittem, rossz irányba megyek.
Ez sem hozta a kívánt eredményt:
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_hungarian_ci'");
----------------------
SET CHARACTER SET is similar to SET NAMES but sets character_set_connection and collation_connection to character_set_database and collation_database. A SET CHARACTER SET x statement is equivalent to these three statements:
SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;
- A hozzászóláshoz be kell jelentkezni