Arabic Font Problem on Dedicated Server CentOS - Joomla & WordPress

Dear All,

I need experts to solve my problem. Customer Service cannot help with such problem since they don't deal with application-based errors.

I have a dedicated server on GoDaddy, with the following:
Server: Localhost via UNIX socket
Server version: 5.1.61
Protocol version: 10
MySQL charset: UTF8_general_ci
MySQL client version: 4.1.22
phpMyAdmin version: 3.4.9
Apache: 2.2.22
PHP: 5.3.10 --> GD, Gettext, Mbstring are all enabled.

I need your urgent help please.

Currently, I exhausted all possible solutions from online documentations
and discussions, suggestions, all possible solutions for such a tiny
problem with encoding, but all are unsuccessful.

Any Arabic font text I enter from the client side it changes automatically
to question marks (??????).

the problem

Funny enough that when I go then to phpmyadmin
and I see the new article saved as ????? in the contents table, I edit it
manually to the Arabic text (from within phpmyadmin) and I save it, it works
successfully on my Joomla end. In other word, I can see phpMyAdmin has no problem with charset since I can manually enter Arabic text and save it. But when the Arabic text comes from client side (Joomla or WordPress), the encoding from there gets corrupted.

However, I can see the source of the problem starting when I first install Joomla I get:

MB Language is Default           No    PHP mbstring language is not set to neutral. This
can be set locally by entering*php_value mbstring.language neutral* in your
..htaccess file.

This above error of joomla installation is missing seeing the correct
language. Well, PHP has a "Constitution" file (php.ini) that can parse what
is required in the client side. Unfortunately, even when adding the
required language value, it cannot see it.

When I add the .htaccess file to the public_html directory of my domain
account, and I add the line required for MB (*php_value mbstring.language
neutral*), I get the 500 Internal Server Error. I checked the php-mbstring
and it is already installed (yum install php-mbstring).

Further, I summarise below the actions I did with no luck:

1. I made sure that the database and phpmyadmin are both in the correct
charset that supports Arabic language (UTF8).

2. I added the necessary code to the main php.ini under /etc/php.ini as
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = long

3. I added the following to httpd.conf file and I got the 500 Internal
Server Error:
php_value mbstring.language = Neutral ; Set default language to
Neutral(UTF-8) (default)
php_value mbstring.internal_encoding = UTF-8 ; Set default internal
encoding to UTF-8
php_value mbstring.encoding_translation = On ; HTTP input encoding
translation is enabled
php_value mbstring.http_input = auto ; Set HTTP input character set
dectection to auto
php_value mbstring.http_output = UTF-8 ; Set HTTP output encoding to UTF-8
php_value mbstring.detect_order = auto ; Set default character encoding
detection order to auto
php_value mbstring.substitute_character = none ; Do not print invalid
php_value default_charset = UTF-8 ; Default character set for auto content
type header

4. I tried Joomla (1.5 and 2.5) - both same problem.

Joomla problem with MB Language
Internal Server Error (caused by adding the line to .htaccess also when I add it to httpd.conf)
5. I tried WordPress the latest version - Same problem. The ?????? appear even in the installation process when I choose an Arabic-font name for the site.

WordPress also joined the club of same problem - not only Joomla
6. I changed the charset from utf8_general_ci to UTF-8 Unicode (utf8) and to cp1256 (both bin and general_ci) ... on database and tables -- with no luck.

7. Ok then, the problem seems with PHP? Let me go and add the following to php.ini once in the main file /etc/php.ini and once in a new php.ini file I created inside cgi-bin - in either way I did restart Apache, and I did rebuild Apache with PHP, and I even restarted the server! with the same problem - as if Joomla is blind and does not want to see the default language set to Neutral!

mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = long;
mbstring.func_overload = 1

Then I commented the above and tried:
mbstring.language = neutral
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation =
mbstring.detect_order = auto
mbstring.substitute_character =
mbstring.func_overload = 0

With no Luck.

8. I tried very many tricks on Joomla Admin panel itself, changing language to Arabic, I added Arabic package and allll possible tricks. It is not relevant.

Another post on experts-exchange has discussed this problem, offered some solutions. I tried them all, with no luck. The post was (Joomla 1.5 does not show Arabic char) link:
The last comment by: wsafiPosted on 2008-05-24 at 11:25:43ID: 21639889 I tried in details with no luck.

Please help!

Many thanks in advance.

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Have you checked this link?

It seems to discuss the same problem you are having..
laurance1Author Commented:
Thanks legolasthehansy for your reply.

I checked the link already. The guy is talking about an old problem with phpMyAdmin when the encoding was a problem. The current phpMyAdmin is more clever and it uses the default encoding of UTF-8 General or UTF-8 Unicode.

3. Change the collation become “utf8_general_ci” and save

In my case, the encoding of the database and of every single table is UTF-8 General

If you also check my post above, I tried all relevant encoding for Arabic font. It all seems fine from phpMyAdmin end. Plus, I imported the database of my old version of the my website and it has Arabic font already there and it displays it fine in Arabic.

The problem is when adding or even editing posts from Joomla (or Wordpress) end. It changes the Arabic content to ???????

Please advise!

laurance1Author Commented:
I solved the problem by myself, not with your help, but I am happy anyway because my problem is solved now.

Technically, the solution was to change the PHP Settings within cPanel WHM and NOT from php.ini

Previously, I did change the settings from php.ini as I explained above in explaining the question.

However, cPanel WHM wouldn't accept changes coming from php.ini file (for some weird reason - don't ask me why!).

All solved with changing the section of mbstring in PHP Configuration in cPanel WHM to:

mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = long;
mbstring.func_overload = 1

Make sure you hit Save when done.

I am posting the solution here to be a reference to anyone who may face this problem.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
laurance1Author Commented:
Because I did NOT get any help from you, I feel I wasted my time waiting for help from you and you did not bother yourself analysing the problem with me.

I did the research and help myself - and I was kind enough to come back and post the answer for your "paid" customers to find help for similar problems.

I am not happy with your service.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Fonts Typography

From novice to tech pro — start learning today.