PHP : How to handle URI or URL with non-ASCII characters such as Chinese/Japanese/Korean(CJK) ?
This tutorial is for CodeIgniter, but it should work with any PHP framework or raw PHP.
While working with CodeIgniter, I need to grab URI with Chinese characters such as :
http://webserver.com/令吉大贬伤内需‧白文春-0fu15fw
with the CodeIgniter's URI helper.
$query = $this->uri->segment(2);
and use the $query as a parameter to search my database and pull out the relevent data.
Trouble is, the $query will become
%E4%BB%A4%E5%90%89%E5%A4%A7%E8%B4%AC%E4%BC%A4%E5%86%85%E9%9C%80%E2%80%A7%E7%99%BD%E6%96%87%E6%98%A5-0fu15fw
instead of 令吉大贬伤内需‧白文春-0fu15fw. Because of not having the URL decoded properly, the database query will not be correct and will always return empty result.
To fix this problem, use the PHP urldecode()
function. For example
$query = urldecode($this->uri->segment(2));
This will ensure the non-ASCII characters get in the URL decoded properly. Hope this tutorial can be useful to you.
References :
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+5.9k Golang : Check from web if Go application is running or not
+1.4k Golang : PGX CopyFrom to insert rows into Postgres database
+11.6k Golang : Chunk split or divide a string into smaller chunk example
+5.9k SSL : How to check if current certificate is sha1 or sha2 from command line
+8.6k RPM : error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
+24.1k Golang : How to check if a connection to database is still alive ?
+2.3k Java : Random alphabets, alpha-numeric or numbers only string generator
+5.3k Golang : Levenshtein distance example
+7.7k Golang : Accessing content anonymously with Tor
+12.2k Golang : Find commonalities in two slices or arrays example
+9.1k Golang : Removes punctuation or defined delimiter from the user's input
+4.7k Golang : Build new URL for named or registered route with Gorilla webtoolkit example