Solved

how to represent unicode characters in strings

Posted on 2007-11-15
8
1,162 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

 
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

Why Off-Site Backups Are The Only Way To Go

You are probably backing up your data—but how and where? Ransomware is on the rise and there are variants that specifically target backups. Read on to discover why off-site is the way to go.

Question has a verified solution.

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

Developers of all skill levels should learn to use current best practices when developing websites. However many developers, new and old, fall into the trap of using deprecated features because this is what so many tutorials and books tell them to u…
This article discusses how to implement server side field validation and display customized error messages to the client.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
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…

726 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