Save Data in Arabic in MySQL database
Solution 1
To insert Arabic Data manually into your Phpmyadmin.
First you check either your database , table and column name is utf8 set or not. If these are not set to utf8 then first you set it then you may insert arabic data into you db table.
YOU MAY CHECK EACH OF THESE BY LOOKING BELOW EXAMPLE.
For Database:
SELECT default_character_set_name FROM information_schema.SCHEMATA S
WHERE schema_name = "schemaname";
For Tables:
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";
For Columns:
SELECT character_set_name FROM information_schema.`COLUMNS` C
WHERE table_schema = "schemaname"
AND table_name = "tablename"
AND column_name = "columnname";
You may easily set utf8 to your tables if you are using SQLYog.
Just right click on db, table, column name and click on alter option and set to
Database Chartset = utf8 Database Collation = utf8_general_ci .
Just Enjoy ....
Solution 2
To read ,write and sort Arabic text in mysql database using php correctly, make sure that:
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation:
utf8_general_ci
your database and table collations are set to:
utf8_general_ci
orutf8_unicode_ci
Then, add this code in your php script when you connect to db:
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
Solution 3
We can convert database or db table to uft8 supportive with below query:
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
Hope it helps !
Read More @
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
Solution 4
Change the database tables collations types to utf8_general_ci
and also table fields collations change to utf8_general_ci
.
Solution 5
Make sure that your client software is also using UTF-8.
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
Romani
Working on Java, Struts2.0 framework, Spring MVC, Activiti
Updated on April 08, 2021Comments
-
Romani about 3 years
I have changed the charset of the tables and of the column, i get the arabic text as ???? marks in MYSQL database
here is the design of the table
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;
When I again fire select query it shows ???? as text?
Can anyone tell me where am i doing wrong?
-
Mohd Abdul Mujib over 10 yearsspecially, please check the individual column character encoding, that's what had me scratching my head for quiet long.
-
Rick James almost 8 yearsSimpler with just
SHOW CREATE TABLE tablename;
-
Rick James almost 8 yearsDon't use the deprecated
mysql_query
; switch tomysqli
orPDO
. -
Ridwan Pujakesuma almost 7 yearsThanks @Nadeem Ijaz
-
Tamir Klein about 5 yearsHi @Waseem Thank you for answering. Can you please explain why your answer is good and how it solves the question
-
Rick James over 4 yearsCaution! That last
ALTER
could mangle data even worse. See mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases