» Javascript equivalent for PHP's utf8_encode
198 PHP equivalents
- PHP.JS Licensing
- PHP.JS SVN
- PHP.JS Namespaced
- abs
- acosh
- acos
- addslashes
- array
- array_change_key_case
- array_chunk
- array_combine
- array_count_values
- array_diff
- array_diff_assoc
- array_diff_key
- array_fill
- array_fill_keys
- array_filter
- array_flip
- array_keys
- array_key_exists
- array_map
- array_merge
- array_merge_recursive
- array_pad
- array_pop
- array_product
- array_push
- array_rand
- array_reduce
- array_reverse
- array_search
- array_shift
- array_slice
- array_sum
- array_unique
- array_unshift
- array_values
- array_walk
- array_walk_recursive
- asinh
- asin
- atanh
- atan
- base64_decode
- base64_encode
- basename
- base_convert
- bin2hex
- bindec
- call_user_func_array
- ceil
- checkdate
- chr
- chunk_split
- compact
- cosh
- cos
- count
- count_chars
- crc32
- create_function
- date
- decbin
- dechex
- decoct
- defined
- deg2rad
- dirname
- echo
- empty
- end
- explode
- exp
- filesize
- file
- file_exists
- file_get_contents
- floatval
- floor
- fmod
- function_exists
- getrandmax
- get_class
- get_html_translation_table
- get_included_files
- hexdec
- htmlentities
- htmlspecialchars
- htmlspecialchars_decode
- html_entity_decode
- http_build_query
- hypot
- implode
- include
- include_once
- intval
- in_array
- ip2long
- isset
- is_array
- is_bool
- is_finite
- is_infinite
- is_int
- is_nan
- is_null
- is_numeric
- is_object
- is_string
- join
- krsort
- ksort
- lcg_value
- levenshtein
- log10
- log
- long2ip
- ltrim
- max
- md5
- md5_file
- min
- mktime
- mt_getrandmax
- mt_rand
- nl2br
- number_format
- octdec
- ord
- parse_str
- pi
- pow
- preg_quote
- printf
- print_r
- rad2deg
- rand
- range
- require
- require_once
- reset
- round
- rsort
- rtrim
- serialize
- setcookie
- sha1
- sha1_file
- shuffle
- sinh
- sin
- sizeof
- sleep
- sort
- soundex
- split
- sprintf
- sqrt
- strcasecmp
- strchr
- strcmp
- stripos
- stripslashes
- strip_tags
- stristr
- strlen
- strnatcmp
- strncasecmp
- strpbrk
- strpos
- strrev
- strripos
- strrpos
- strstr
- strtolower
- strtoupper
- str_ireplace
- str_pad
- str_repeat
- str_replace
- str_rot13
- str_split
- substr
- substr_count
- tanh
- tan
- time
- trim
- ucfirst
- ucwords
- unserialize
- urldecode
- urlencode
- utf8_decode
- » utf8_encode
- var_export
- wordwrap
PHP to Javascript Project: php.js
This article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.
A lot of people are familiar with PHP's functions, and though Javascript functions are often quite similar, some functions may be missing or addressed differently. The Javascript implementations should be as compliant with the PHP versions as possible, a good indication is that the PHP function manual could also apply to the Javascript version.
Porting crucial PHP functions to Javascript can be fun & useful. Currently some PHP functions have been added, but readers are encouraged to contribute and improve functions by adding comments. Eventually the goal is to save all the functions in one php.js file and make it publicly available for your coding pleasure.
If you choose to contribute, let me know how you want to be credited in the function's comments. You may also want to subscribe to RSS so you receive updates whenever new functions are posted.
This is a Javascript version of the PHP function: utf8_encode.
PHP utf8_encode
Description
utf8_encode - Encodes an ISO-8859-1 string to UTF-8
string utf8_encode( string data )
This function encodes the string data to UTF-8, and returns the encoded version. UTF-8 is a standard mechanism used by Unicode for encoding wide character values into a byte stream. UTF-8 is transparent to plain ASCII characters, is self-synchronized (meaning it is possible for a program to figure out where in the bytestream characters start) and can be used with normal string comparison functions for sorting and such. PHP encodes UTF-8 characters in up to four bytes, like this: UTF-8 encodingbytes bits representation 1 7 0bbbbbbb 2 11 110bbbbb 10bbbbbb 3 16 1110bbbb 10bbbbbb 10bbbbbb 4 21 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb Each b represents a bit that can be used to store character data.
Parameters
-
data
An ISO-8859-1 string.
Return Values
Returns the UTF-8 translation of data .
Javascript utf8_encode
Source
This is the main source of the Javascript version of PHP's utf8_encode
function utf8_encode ( string ) { // http://kevin.vanzonneveld.net // + original by: Webtoolkit.info (http://www.webtoolkit.info/) // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: sowberry // + tweaked by: Jack // + bugfixed by: Onno Marsman // + improved by: Yves Sucaet // + bugfixed by: Onno Marsman // * example 1: utf8_encode('Kevin van Zonneveld'); // * returns 1: 'Kevin van Zonneveld' string = (string+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n"); var utftext = ""; var start, end; var stringl = 0; start = end = 0; stringl = string.length; for (var n = 0; n < stringl; n++) { var c1 = string.charCodeAt(n); var enc = null; if (c1 < 128) { end++; } else if((c1 > 127) && (c1 < 2048)) { enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128); } else { enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128); } if (enc != null) { if (end > start) { utftext += string.substring(start, end); } utftext += enc; start = end = n+1; } } if (end > start) { utftext += string.substring(start, string.length); } return utftext; }
Examples
Currently there is 1 example
Example 1
utf8_encode('Kevin van Zonneveld');And that would return
'Kevin van Zonneveld'More about this Project
Download php.js
To easily include it in your code, every function currently available is stored in
Normal
- uncompressed source: php.js (222.3kB)
- minified: php.min.js (73.9kB) [recommended]
- compressed: php.packed.js (52.8kB)
Namespaced What is 'namespaced?'
- uncompressed source: php.namespaced.js (275.3kB)
- minified: php.namespaced.min.js (74.2kB)
- compressed: php.namespaced.packed.js (53.2kB)
To download use Right click, Save Link As
Generally the best way is to use a minified version and gzip it
Credits
Respect & awards go to everybody who has contributed in some way so far:
Your name here?
Contributing is as easy as adding a comment with better code, or code for a new function.
Any contribution leading to improvement will directly get your name & link here.
Coming Project features
Project features that we are currently working on:
- Site. A place for php.js of it's own. You can track our lame attempts at phpjs.org. If there are any CakePHP developers out there who would like to help out, please contact me.
- Compile. Compile your own php.js version, with only the functions you need. Should generate a hash with which you can retrieve latest versions of your php.js combination.
- docBlock. Move to docBlock comments for improved compatibility with IDEs.
- Done - Testsuite. A better test-suite that can be ran locally so developers can easily test before commiting. Also the testing itself should be more thorough.
- Done - Versioning. Individual functions are versioned, but the entire library should be versioned as well.
Like this article?
|
Then Dzone it! Or use another bookmark button below to show your support & help me spread the word. |
Hot StuffFlaming articles» Survive heavy traffic with you... | RelatedArticles like this one» Javascript equivalent for PHP'... |
tags: programming, php, javascript
category: Programming - Javascript - PHP equivalents
read: 7,832 times










#6. Kevin on 14 November 2008
#5. Onno Marsman on 14 November 2008
This is just weird. Of course the extra (string+'') is not necessary. The following would do exactly the same:
or even something like (not tested):#4. Kevin on 13 November 2008
#3. Yves Sucaet on 12 November 2008
I think it makes sense to replace
with#2. Kevin on 27 August 2008
#1. sowberry on 08 August 2008