2011-07-28 31 views
20

He cambiado el conjunto de caracteres de las tablas y de la columna, obtengo el texto árabe como ???? marcas en la base de datos MYSQLGuardar datos en árabe en la base de datos MySQL

aquí es el diseño de la mesa

CREATE DATABASE mydb 
    DEFAULT CHARACTER SET utf8 
    DEFAULT COLLATE utf8_general_ci; 


    CREATE TABLE `categories` (      
    `category_id` tinyint(2) NOT NULL auto_increment,   
    `category_name` varchar(50)character set utf8 NOT NULL , 
    PRIMARY KEY (`category_id`) 


    insert into `mydb`.`categories` 
    (`category_id`, `category_name`) 
    values (1,'کتگوری'); 
    commit; 

Cuando de nuevo se disparó consulta de selección que muestra ???? como texto?

¿Alguien puede decirme dónde estoy equivocado?

+3

¿Qué versión de mysql? ¿Cómo estás mostrando tu texto? ¿Puedes dar el código que estás usando para recuperar los datos? Estoy usando la misma codificación y colación y funciona bien para mí. – nakhli

+0

Mysql versión 5.0.45. usando la consulta de selección ... select * from poll_categories – Romani

+0

Esto funciona para mí en MySQL WB – gbn

Respuesta

23

Para insertar árabe de datos de forma manual en su Phpmyadmin.

Primero verifique que su base de datos, tabla y columna estén configurados como utf8 o no. Si estos no están configurados en utf8, primero configúrelo y luego puede insertar datos arábigos en su tabla db.

PUEDE COMPROBAR CADA UNA DE ESTAS MIRANDO ABAJO EL EJEMPLO.

En Base de datos:

SELECT default_character_set_name FROM information_schema.SCHEMATA S 
WHERE schema_name = "schemaname"; 

Para los cuadros:

SELECT CCSA.character_set_name FROM information_schema.`TABLES` T, 
     information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA 
WHERE CCSA.collation_name = T.table_collation 
    AND T.table_schema = "schemaname" 
    AND T.table_name = "tablename"; 

para las columnas:

SELECT character_set_name FROM information_schema.`COLUMNS` C 
WHERE table_schema = "schemaname" 
    AND table_name = "tablename" 
    AND column_name = "columnname"; 

Usted puede configurar fácilmente UTF-8 a sus mesas, si lo está utilizando SQLyog.

Simplemente haga clic derecho sobre db, tabla, el nombre de la columna y haga clic en la opción alter y se puso a

base de datos Chartset = UTF-8 base de datos de intercalación = utf8_general_ci.

simplemente disfrutar de ....

+0

especialmente, compruebe la codificación de caracteres de la columna individual, eso es lo que me hizo rascar la cabeza por mucho tiempo. –

+0

Más simple con solo 'SHOW CREATE TABLE tablename;' –

17

para leer, escribir y el texto especie de Árabe en la base de datos MySQL con PHP correctamente, asegúrese de que:

  1. MySQL conjunto de caracteres: UTF-8 Unicode (UTF-8)

  2. Intercalación de la conexión MySQL: utf8_general_ci

  3. su colación de bases de datos y tablas está ta: utf8_general_ci o utf8_unicode_ci

A continuación, agregue el código en el script php cuando se conecta a db:

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

For more details

+0

No utilice el' mysql_query' obsoleto; cambiar a 'mysqli' o' PDO'. –

7

Podemos convertir la base de datos o db mesa para uft8 de apoyo con la siguiente consulta:

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci; 

ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci; 

ALTER TABLE columnname DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci 

Hop e ayuda!

Leer Más @

https://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs

http://hollyslog.com/technology/how-to-store-arabic-or-hebrew-characters-mysql-database

4

cambiar los tipos de tablas de base de colaciones a utf8_general_ci y también campos de tabla colaciones cambiar a utf8_general_ci.

enter image description here

+0

Gracias @Nadeem Ijaz –

Cuestiones relacionadas