The world does not live off English alone. The rest of the world all demand and deserve means to communicate within its own communities, as well as to reach out to the diaspora, or even to enrich other communities.

Therefore, we need to ensure our communication platform is ready for communicating our local or native scripts and characters. One of the most common content management system (CMS) platform for setting up websites is WordPress.

If you need to display Chinese characters (or any other non-Latin script) on your WordPress site, you need to ensure UTF-8 is working. And unknown to many, it is not really found within the admin panel of your WordPress site, but on your web hosting cPanel itself.

Here are the steps to get your WordPress site to display Chinese in various parts of the site.

  • Go to cPanel.
  • Click on phpMyAdmin under Databases.
  • Under “localhost” on the top bar, select the database.
  • Click on “Structure” under the “wp_posts” of the selected database.
  • Look for ALL fields in the “Collation” column with “latin1…” types and click on “Change” (the pencil icon).

Some of the typical fields that may need to be changed are:

  • post_content
  • post_excerpt
  • post_status
  • comment_status
  • ping_status
  • post_password
  • post_name
  • to_ping
  • pinged
  • post_content_filtered
  • guid
  • post_type
  • post_mime_type

If the site name and options require UTF-8 too, edit “wp_options” as well. These are the fields that may require changing:

  • option_name
  • option_value
  • autoload 
  • Under “Collation” column of the “Structure“, change to “utf8_general_ci“.
  • Repeat until ALL “Collation” fields are changed to “utf8_general_ci”.
  • Repeat for all databases.

This is a rather technical post and deviates from our usual posts. I would suggest you attempt this is you are sure of what you are doing, and have backed up your databases beforehand. As with any advice, this is something you attempt at your own risk as your mileage may vary, and web hosts do tend to vary quite a bit in backend configuration. But the general idea is here for your reference.