In response to mortoray at ecircle-ag dot com:
The characters display fine as long as you set the Encoding to something more "Latin 1" compatible (i.e. US-ACSII, ISO-8859-1, ISO-8859-1, or Windows 1252). PHP.net auto-detects to UTF-8
mb_internal_encoding
(PHP 4 >= 4.0.6, PHP 5)
mb_internal_encoding — Dahili karakter kodlamasını tanımlar/döndürür
Açıklama
Dahili karakter kodlamasını tanımlar/döndürür.
DeÄŸiÅŸtirgeler
-
kodlama -
HTTP girdi karakter kodlaması dönüşümü için kullanılan karakter kodlaması ve dizge işlevleri için mbstring modülü tarafından tanımlanmış öntanımlı karakter kodlaması adı.
Dönen Değerler
kodlama belirtilmişse başarı durumunda TRUE
aksi takdirde FALSE döner. kodlama belirtilmemişse
geçerli kodlamanın ismi döner.
Örnekler
Örnek 1 - mb_internal_encoding() örneği
<?php
/* Dahili karakter kodlamasını UTF-8 yapalım */
mb_internal_encoding("UTF-8");
/* Dahili karakter kodlamasını öğrenelim */
echo mb_internal_encoding();
?>
Notlar
Bilginize:
Bu işlev karakter kodlaması olarak dahili kodlamayı veya mb_regex_encoding() işlevi tarafından belirtilen karakter kodlamasını kullanır.
Ayrıca Bakınız
- mb_http_input() - HTTP girdi karakter kodlamasını algılar
- mb_http_output() - HTTP çıktı karakter kodlamasını tanımlar/döndürür
- mb_detect_order() - Karakter kodlaması algılama sırasını tanımlar/döndürür
mdirks at gulfstreamcoach dot com
17-May-2007 08:55
Joachim Kruyswijk
25-May-2006 12:52
Especially when writing PHP scripts for use on different servers, it is a very good idea to explicitly set the internal encoding somewhere on top of every document served, e.g.
mb_internal_encoding("UTF-8");
This, in combination with mysql-statement "SET NAMES 'utf8'", will save a lot of debugging trouble.
Also, use the multi-byte string functions instead of the ones you may be used to, e.g. mb_strlen() instead of strlen(), etc.
mortoray at ecircle-ag dot com
27-May-2005 04:10
To previous example, the PHP notes don't appear to support umlauted characters so there are question marks (?) there instead of what should be umlauated oue. Just substitute any high-order/accented character to see the effect.
mortoray at ecircle-ag dot com
26-May-2005 11:58
Be aware that the strings in your source files must match the encoding you specify by mb_internal_encoding. It appears the Parser loads raw bytes from the file and refers to its internal encoding to determine their actual encoding.
To demonstrate, the following outputs as espected when the /source/ file is Latin-1 encoded:
<?php
mb_internal_encoding("iso-8859-1");
mb_http_output( "UTF-8" );
ob_start("mb_output_handler");
echo "üöä<br/>";
?>üöä
Now, a typical use of mb_internal_encoding is shown as follows. Make the change to "utf-8" but leave the /source/ file encoding unchanged:
<?php
mb_internal_encoding("UTF-8");
mb_http_output( "UTF-8" );
ob_start("mb_output_handler");
echo "üöä<br/>";
?>üöä
The output will just show the <br/> tag and no text.
Save the file as UTF-8 encoding and then the results will be as expected.
