Solved

how to represent unicode characters in strings

Posted on 2007-11-15
8
1,159 Views
Last Modified: 2012-08-13
hi all,
concerning unicode how can I represent unicode string in php
say  those 3 letters:
U+0644
U+0647
U+062C

how can I express them in php

best regards
HG
0
Comment
Question by:shang3000
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 20

Accepted Solution

by:
steelseth12 earned 200 total points
ID: 20287557
This function is take from http://www.php.net/manual/en/function.chr.php

function uchr ($codes) {
    if (is_scalar($codes)) $codes= func_get_args();
    $str= '';
    foreach ($codes as $code) $str.= html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8');
    return $str;
}

echo uchr("0647");
0
 

Author Comment

by:shang3000
ID: 20287740
it does not give the same result as this (please check this image)
http://q.softwarelab.net/test.png

and here is what your code display
http://q.softwarelab.net/test2.png

best regards
HG
0
 
LVL 20

Assisted Solution

by:steelseth12
steelseth12 earned 200 total points
ID: 20288218
shang3000 do you have some samples of the characters and their codes.
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 21

Assisted Solution

by:nizsmo
nizsmo earned 200 total points
ID: 20297327
shang3000:

You may need to define your charset to display the character properly?

To do this:

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">

You can test out different charset values, to see which one would display your character properly.

These are some of the basic ones:
UTF-8
The W3C's recommended encoding. Can represent all characters defined in the Unicode standard.

windows-1252
Windows 1252 (no Arabic characters included)

windows-1256
Windows Arabic codepage

asmo-708
ASMO 708 codepage

dos-720
Arabic DOS 720 codepage


For a big list of charsets:
http://a4esl.org/c/charset.html
0
 

Author Comment

by:shang3000
ID: 20306839
hi nizsmo,
thanks for reply,

>>><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1256">

http://q.softwarelab.net/test3.png
gives me  different   than
http://q.softwarelab.net/test.png
please help me

best regards
HG

0
 
LVL 21

Assisted Solution

by:nizsmo
nizsmo earned 200 total points
ID: 20306848
i'm not too sure which encoding your character is in.

http://q.softwarelab.net/test.png
is this picture a screenshot of a website? if it is, you may be able to go into the source code of that website and see what encoding they are using.
0
 

Author Comment

by:shang3000
ID: 20311048
unfortunately it's a page of a book in safari books online on unicode not a source code
0
 
LVL 1

Assisted Solution

by:ussher
ussher earned 100 total points
ID: 20333763
Hi HG,

I dont fully understand what it is you are trying to do but i use utf-8 a lot for my websites and here are some things that are useful.

Put this as the first line of any page that is going to be viewed on the web. It tells browsers that the page uses unicode.  IE6 in particular sometimes has problems if you use only the html metatag for this.
<?php
   header('Content-Type: text/html; charset=utf-8');
?>

now your page is being displayed in unicode.  

When you are writing your php script it is also important to save it in unicode format. for example if you are writing it with a text editor like notepad you can select 'Save As' and the default option for encoding is is ASCII.  Scroll down the list and select UTF-8.

If you do it like this the document that you are creating can have characters in any language in clear display on the screen so that you can read it while programming.  If you store everything in raw unicode then you wont be able to read the source code.

if are wanting to transform those arabic characters into ones that will display in a document that is not unicode then there is an encoder here
http://konieczny.be/unicode.html

It really depends on how you are getting the unicode.  Is it coming to your php through a form that is submitted on your website? Or are you trying to use php to build a decoder so that you can take the U+123 characters and read them.

How are you getting the unicode that you want to display?
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
This article discusses how to create an extensible mechanism for linked drop downs.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now