Solved

how to represent unicode characters in strings

Posted on 2007-11-15
8
1,161 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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…
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
The viewer will learn how to dynamically set the form action using jQuery.
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 …

749 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