1. Главная страница » Компьютеры » Php задать кодировку utf 8

Php задать кодировку utf 8

Автор: | 16.12.2019

�� ������� �� ��� ����� �� ��������, �� ��� �������� ����������� ��������� ���������� ��������� ����� 11(!) ������.
���� ������� ������������, ���� �����-�� �� �������� � .htaccess �������� �� ����� ������ 500, ��� ������, ��� ������� �������� ������ ���� �������� �� �������. � ����� ������ ��������� ��� ����, ��� � ��� UTF-8 � � ������ ���� ���������� � ������� ��������.
� ��� ���, ��� ����� �� ��� �������� � ��������� �� Ajax: Ajax �������� � ��������� UTF-8.

������� �1: ��������� � HTML ������� � ���� ������ ��������, ����� �������, ��� �� ����� ������������ ��� , ��� ��� �� ��� �� ��� � ��������� ����� ��������� ��� �������������, ��������� ���:

������� �2: ��������� ��������� ��� PHP � ������ �����, ��� ����� ��� ���������� ��������� ��������� �������� header(). ���������� ��� � ����� ������ ������ ����� (��������� � ����� ������), ����� ����� �������� ������ ������ ������:

������� �3: ��������� ��� ����������� � � �� MySQL. ��������������� ����� ����������� � �� � ������ �� (mysql_connect, mysql_select_db). ���� � ��� ������ mysql:

��� ���������� ������ mysqli:

������� �4: ��������� � .htaccess:

������� �5: ��������� ��� ���������� mb, ������� � ������ php 5.4 ����� �� ���������, ��� ��� �� ��������� ����� �������������� ������ UTF-8. �� � ���� ����������� � � ����� .htaccess:

���� � ����� PHP, ��� � ����� �������� ���� � �� �� ��������:

������� �6: ��� ���������� ������ (����������� ����!) ������� ��������� UTF-8 without BOM, ���������, without BOM — ��� ����������� ���������, � ��������� ������ ��� ���� �� ����� �������� ��� ����. ��� ���, ��� ���������� ������� ���������� DreamWeaver:
Modify => Page Properties => Title/Encoding � ���������� "Encoding: UTF-8", ����� ���� �������� ReLoad, ������� ������� � BOM "Include Unicode Signature (BOM)". Apply + OK.
����������� => �������� �������� => ���������/��������� � ���������� ��������� UTF-8. �������� "�������������", ������ ������� � ���������� ������ ��������� (BOM). ��������� � OK.

������� �7: ���� �� ������ ������ �����-�� �� ������� ��� ����� �� �������� ��� � �� — ��� ���������� �����������. ���� � ���, ��� ������ � ����� ��������� ������������ ���� ����� ��� ��� ������� ��������, � � ������ — ������. ������ ������� ���������� ��� ���� �����������, ���� ��������������. ����������� ��������� ����� ����������� ��������� ����� �� ����� ��������� � ������. �� ���� ����������� ������������� � �������� ����� ��������.

������� �8: ���� ����������, ����� ����� �������� � ��� �� �������� � ������� ����� � ������ ���������. ����� �� PHP ���� ������� ������� ��� �������� �� ����� ��������� � ������:

������� �9: ��� ��������� ������� strlen, substr, ���������� ������������ �� ������� �� ���������� mb_, � ������: mb_strlen, mb_substr, �� ���� � ������� ���������� mb_ .

������� �10: ��� ������ � ����������� ����������� ���������� ��������� ����������� u . ��� ������������ ��������!

������� �11: ��� CSS ������ ����������� ��������� ���:

� ���������� �����, ��� ������� � ��������� WIN-1251 ������� �� 1 �����, �� ���� 8 ���, � � ���� ������� � ��������� UTF-8 ������� ����� �������� �� 1 �� 4 ����, �� ���� � ���, ��� ��������� UTF-8 ��������� ��������� ������������� �����, ��� ��� ��� ������������ � ���� ������� � ��� ������������.
���� ����������� ������� ����� � ��������� UTF-8 �������� 2 �����, ������ ������� �� 1 ������ ������� strlen ���������� ����� 2, �� ���� 2 �����, � mb_strlen ���������� ��� ���������� ����� � 1 ������.

(PHP 4, PHP 5, PHP 7)

utf8_encode � �������� ������ ISO-8859-1 � ��������� UTF-8

��������

��� ������� ������������ ������ data �� ��������� ISO-8859-1UTF-8

������ ���-��������, ��������� ��� ������������ ��������� ISO-8859-1, �� ����� ���� ���������� ������ ��������� Windows-1252, � ���-�������� �������������� �������� ISO-8859-1 ��� Windows-1252. ������ Windows-1252 �������� �������������� �������� �������, ����� ��� ���� ���� () � �������� ������� ( ) ������ ����������� ����� ISO-8859-1. ��� ������� �� ������������ ����� ������� Windows-1252 ���������. ����������� ������ �������, ���� ����� ����������� �� Windows-1252.

������ ����������

������������ ��������

���������� UTF-8 ������� ������ data .

������ ���������

������ ��������
7.2.0 ��� ������� ���� ���������� � ���� PHP, ����� ������� ������� ���������� ���������� XML ��� ������������� ���� �������.

�������� �����

  • utf8_encode() (�������� �������� UTF-8)
  • mb_convert_encoding() — ����������� ��������� �������� — ������������ ����� ���������� ��������� ���������, ������� UTF-8, ISO-8859-1 and Windows-1252
  • iconv() — �������������� ������ � ��������� ��������� — ������������ ����� ���������� ��������� ���������
  • recode_string() — ������������ ������ � ������������ � ��������� ����������� — ������������ ����� ���������� ��������� ���������

User Contributed Notes 42 notes

Please note that utf8_encode only converts a string encoded in ISO-8859-1 to UTF-8. A more appropriate name for it would be "iso88591_to_utf8". If your text is not encoded in ISO-8859-1, you do not need this function. If your text is already in UTF-8, you do not need this function. In fact, applying this function to text that is not encoded in ISO-8859-1 will most likely simply garble that text.

If you need to convert text from any encoding to any other encoding, look at iconv() instead.

For reference, it may be insightful to point out that:
utf8_encode($s)
is actually identical to:
recode_string(‘latin1..utf8’, $s)
and:
iconv(‘iso-8859-1’, ‘utf-8’, $s)
That is, utf8_encode is a specialized case of character set conversions.

If your string to be converted to utf-8 is something other than iso-8859-1 (such as iso-8859-2 (Polish/Croatian)), you should use recode_string() or iconv() instead rather than trying to devise complex str_replace statements.

If you need a function which converts a string array into a utf8 encoded string array then this function might be useful for you:

Walk through nested arrays/objects and utf8 encode all strings.

// Usage
class Foo <
public $somevar = ‘whoop whoop’ ;
>

Читайте также:  12 Мегапикселей это нормально

$structure = array(
‘object’ => (object) array(
‘entry’ => ‘hello world’ ,
‘another_array’ => array(
‘string’ ,
1234 ,
‘another string’
)
),
‘string’ => ‘foo’ ,
‘foo_object’ => new Foo
);

// $structure is now utf8 encoded
print_r ( $structure );

unset( $value );
> else if ( is_object ( $input )) <
$vars = array_keys ( get_object_vars ( $input ));

foreach ( $vars as $var ) <
utf8_encode_deep ( $input -> $var );
>
>
>
?>

Here’s some code that addresses the issue that Steven describes in the previous comment;

/* This structure encodes the difference between ISO-8859-1 and Windows-1252,
as a map from the UTF-8 encoding of some ISO-8859-1 control characters to
the UTF-8 encoding of the non-control characters that Windows-1252 places
at the equivalent code points. */

$cp1252_map = array(
"xc2x80" => "xe2x82xac" , /* EURO SIGN */
"xc2x82" => "xe2x80x9a" , /* SINGLE LOW-9 QUOTATION MARK */
"xc2x83" => "xc6x92" , /* LATIN SMALL LETTER F WITH HOOK */
"xc2x84" => "xe2x80x9e" , /* DOUBLE LOW-9 QUOTATION MARK */
"xc2x85" => "xe2x80xa6" , /* HORIZONTAL ELLIPSIS */
"xc2x86" => "xe2x80xa0" , /* DAGGER */
"xc2x87" => "xe2x80xa1" , /* DOUBLE DAGGER */
"xc2x88" => "xcbx86" , /* MODIFIER LETTER CIRCUMFLEX ACCENT */
"xc2x89" => "xe2x80xb0" , /* PER MILLE SIGN */
"xc2x8a" => "xc5xa0" , /* LATIN CAPITAL LETTER S WITH CARON */
"xc2x8b" => "xe2x80xb9" , /* SINGLE LEFT-POINTING ANGLE QUOTATION */
"xc2x8c" => "xc5x92" , /* LATIN CAPITAL LIGATURE OE */
"xc2x8e" => "xc5xbd" , /* LATIN CAPITAL LETTER Z WITH CARON */
"xc2x91" => "xe2x80x98" , /* LEFT SINGLE QUOTATION MARK */
"xc2x92" => "xe2x80x99" , /* RIGHT SINGLE QUOTATION MARK */
"xc2x93" => "xe2x80x9c" , /* LEFT DOUBLE QUOTATION MARK */
"xc2x94" => "xe2x80x9d" , /* RIGHT DOUBLE QUOTATION MARK */
"xc2x95" => "xe2x80xa2" , /* BULLET */
"xc2x96" => "xe2x80x93" , /* EN DASH */
"xc2x97" => "xe2x80x94" , /* EM DASH */

"xc2x98" => "xcbx9c" , /* SMALL TILDE */
"xc2x99" => "xe2x84xa2" , /* TRADE MARK SIGN */
"xc2x9a" => "xc5xa1" , /* LATIN SMALL LETTER S WITH CARON */
"xc2x9b" => "xe2x80xba" , /* SINGLE RIGHT-POINTING ANGLE QUOTATION*/
"xc2x9c" => "xc5x93" , /* LATIN SMALL LIGATURE OE */
"xc2x9e" => "xc5xbe" , /* LATIN SMALL LETTER Z WITH CARON */
"xc2x9f" => "xc5xb8" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);

function cp1252_to_utf8 ( $str ) <
global $cp1252_map ;
return strtr ( utf8_encode ( $str ), $cp1252_map );
>

I tried a lot of things, but this seems to be the final fail save method to convert any string to proper UTF-8.

function _convert ( $content ) <
if(! mb_check_encoding ( $content , ‘UTF-8’ )
OR !( $content === mb_convert_encoding ( mb_convert_encoding ( $content , ‘UTF-32’ , ‘UTF-8’ ), ‘UTF-8’ , ‘UTF-32’ ))) <

$content = mb_convert_encoding ( $content , ‘UTF-8’ );

if ( mb_check_encoding ( $content , ‘UTF-8’ )) <
// log(‘Converted to UTF-8’);
> else <
// log(‘Could not converted to UTF-8’);
>
>
return $content ;
>
?>

I recommend using this alternative for every language:

Don’t forget to set all your pages to "utf-8" encoding, otherwise just use HTML entities.

This function may be useful do encode array keys and values [and checks first to see if it’s already in UTF format]:

public static function to_utf8 ( $in )
<
if ( is_array ( $in )) <
foreach ( $in as $key => $value ) <
$out [ to_utf8 ( $key )] = to_utf8 ( $value );
>
> elseif( is_string ( $in )) <
if( mb_detect_encoding ( $in ) != "UTF-8" )
return utf8_encode ( $in );
else
return $in ;
> else <
return $in ;
>
return $out ;
>
?>

Hope this may help.

[NOTE BY danbrown AT php DOT net: Original function written by (cmyk777 AT gmail DOT com) on 28-JAN-09.]

If you are looking for a function to replace special characters with the hex-utf-8 value (e.g. fur Webservice-Security/WSS4J compliancy) you might use this:

$textstart = "Gro?e";
$utf8 =»;
$max = strlen($txt);

$utf8 .= $neu;
> // for $i

In this example $textnew will be "GrA�A?e"

// Reads a file story.txt ascii (as typed on keyboard)
// converts it to Georgian character using utf8 encoding
// if I am correct(?) just as it should be when typed on Georgian computer
// it outputs it as an html file
//
// http://www.comweb.nl/keys_to_georgian.html
// http://www.comweb.nl/keys_to_georgian.php
// http://www.comweb.nl/story.txt

keys to unicode code

// this meta tag is needed

// note the sylfean font seems to be standard installed on Windows XP
// It supports Georgian

My version of utf8_encode_deep,
In case you need one that returns a value without changing the original.

/**
* Convert Anything To UTF-8
* @param mixed $var The variable you want to convert.
* @param boolean $deep Deep convertion? (*Default: TRUE).
* @return mixed
*/
function anything_to_utf8($var,$deep=TRUE) <
if(is_array($var)) <
foreach($var as $key => $value) <
if($deep) <
$var[$key] = anything_to_utf8($value,$deep);
>elseif(!is_array($value) && !is_object($value) && !mb_detect_encoding($value,’utf-8′,true)) <
$var[$key] = utf8_encode($var);
>
>
return $var;
>elseif(is_object($var)) <
foreach($var as $key => $value) <
if($deep) <
$var->$key = anything_to_utf8($value,$deep);
>elseif(!is_array($value) && !is_object($value) && !mb_detect_encoding($value,’utf-8′,true)) <
$var->$key = utf8_encode($var);
>
>
return $var;
>else <
return (!mb_detect_encoding($var,’utf-8′,true))?utf8_encode($var):$var;
>
>

Avoiding use of preg_match to detect if utf8_encode is needed:

= $string_input ; // avoid being destructive

$string = preg_replace ( "#[x09x0Ax0Dx20-x7E]#" , "" , $string ); // ASCII
$string = preg_replace ( "#[xC2-xDF][x80-xBF]#" , "" , $string ); // non-overlong 2-byte
$string = preg_replace ( "#xE0[xA0-xBF][x80-xBF]#" , "" , $string ); // excluding overlongs
$string = preg_replace ( "#[xE1-xECxEExEF][x80-xBF]<2>#" , "" , $string ); // straight 3-byte
$string = preg_replace ( "#xED[x80-x9F][x80-xBF]#" , "" , $string ); // excluding surrogates
$string = preg_replace ( "#xF0[x90-xBF][x80-xBF]<2>#" , "" , $string ); // planes 1-3
$string = preg_replace ( "#[xF1-xF3][x80-xBF]<3>#" , "" , $string ); // planes 4-15
$string = preg_replace ( "#xF4[x80-x8F][x80-xBF]<2>#" , "" , $string ); // plane 16

$rc = ( $string == "" ? true : false );
?>

/**
* Encodes an ISO-8859-1 mixed variable to UTF-8 (PHP 4, PHP 5 compat)
* @param mixed $input An array, associative or simple
* @param boolean $encode_keys optional
* @return mixed ( utf-8 encoded $input)
*/

function utf8_encode_mix ( $input , $encode_keys = false )
<
if( is_array ( $input ))
<
$result = array();
foreach( $input as $k => $v )
<
$key = ( $encode_keys )? utf8_encode ( $k ) : $k ;
$result [ $key ] = utf8_encode_mix ( $v , $encode_keys );
>
>
else
<
$result = utf8_encode ( $input );
>

Читайте также:  Mini token что это

/*
Every function seen so far is incomplete or resource consumpting. Here are two — integer 2 utf sequence (i3u) and utf sequence to integer (u3i). Below is a code snippet that checks well behavior at the range boundaries.

Someday they might be hardcoded into PHP.
*/

function u3i($s,$strict=1) < // returns integer on valid UTF-8 seq, NULL on empty, else FALSE
// NOT strict: takes only DATA bits, present or not; strict: length and bits checking
if ($s==») return NULL;
$l=strlen($s); $o=ord($s<0>);
if ($o 6 && $strict) return false;
if ($strict) for ($i=1;$i 0xbf || ord($s<$i>) [" . u3i($o) . "]
";
>

I had some difficulty finding a way to easily write UTF-8 files with the byte order mark included. This is the simple solution I have come up with:

function writeUTF8File ( $filename , $content ) <
$dhandle = fopen ( $filename , "w" );
# Now UTF-8 — Add byte order mark
fwrite ( $dhandle , pack ( "CCC" , 0xef , 0xbb , 0xbf ));
fwrite ( $dhandle , $content );
fclose ( $dhandle );
>
?>

When you read the file back in using fopen, the BOM will also be there. To remove it, I also wrote the following function:

function removeBOM ( $str = "" ) <
if( substr ( $str , 0 , 3 ) == pack ( "CCC" , 0xef , 0xbb , 0xbf )) <
$str = substr ( $str , 3 );
>
return $str ;
>
?>

I was searching for a function similar to Javascript’s unescape(). In most cases it is OK to use url_decode() function but not if you’ve got UTF characters in the strings. They are converted into %uXXXX entities that url_decode() cannot handle.
I googled the net and found a function which actualy converts these entities into HTML entities (&#xxx;) that your browser can show correctly. If you’re OK with that, the function can be found here: http://pure-essence.net/stuff/code/utf8RawUrlDecode.phps

But it was not OK with me because I needed a string in my charset to make some comparations and other stuff. So I have modified the above function and in conjuction with code2utf() function mentioned in some other note here, I have managed to achieve my goal:

/**
* Function converts an Javascript escaped string back into a string with specified charset (default is UTF-8).
* Modified function from http://pure-essence.net/stuff/code/utf8RawUrlDecode.phps
*
* @param string $source escaped with Javascript’s escape() function
* @param string $iconv_to destination character set will be used as second paramether in the iconv function. Default is UTF-8.
* @return string
*/
function unescape ( $source , $iconv_to = ‘UTF-8’ ) <
$decodedStr = » ;
$pos = 0 ;
$len = strlen ( $source );
while ( $pos $len ) <
$charAt = substr ( $source , $pos , 1 );
if ( $charAt == ‘%’ ) <
$pos ++;
$charAt = substr ( $source , $pos , 1 );
if ( $charAt == ‘u’ ) <
// we got a unicode character
$pos ++;
$unicodeHexVal = substr ( $source , $pos , 4 );
$unicode = hexdec ( $unicodeHexVal );
$decodedStr .= code2utf ( $unicode );
$pos += 4 ;
>
else <
// we have an escaped ascii character
$hexVal = substr ( $source , $pos , 2 );
$decodedStr .= chr ( hexdec ( $hexVal ));
$pos += 2 ;
>
>
else <
$decodedStr .= $charAt ;
$pos ++;
>
>

if ( $iconv_to != "UTF-8" ) <
$decodedStr = iconv ( "UTF-8" , $iconv_to , $decodedStr );
>

/**
* Function coverts number of utf char into that character.
* Function taken from: http://sk2.php.net/manual/en/function.utf8-encode.php#49336
*
* @param int $num
* @return utf8char
*/
function code2utf ( $num ) <
if( $num 128 )return chr ( $num );
if( $num 2048 )return chr (( $num >> 6 )+ 192 ). chr (( $num & 63 )+ 128 );
if( $num 65536 )return chr (( $num >> 12 )+ 224 ). chr ((( $num >> 6 )& 63 )+ 128 ). chr (( $num & 63 )+ 128 );
if( $num 2097152 )return chr (( $num >> 18 )+ 240 ). chr ((( $num >> 12 )& 63 )+ 128 ). chr ((( $num >> 6 )& 63 )+ 128 ) . chr (( $num & 63 )+ 128 );
return » ;
>
?>

This function I use convert Thai font (iso-8859-11) to UTF-8. For my case, It work properly. Please try to use this function if you have a problem to convert charset iso-8859-11 to UTF-8.

if ( ! ereg("[241-377]", $string) )
return $string;

$iso8859_11 = array(
"xa1" => "xe0xb8x81",
"xa2" => "xe0xb8x82",
"xa3" => "xe0xb8x83",
"xa4" => "xe0xb8x84",
"xa5" => "xe0xb8x85",
"xa6" => "xe0xb8x86",
"xa7" => "xe0xb8x87",
"xa8" => "xe0xb8x88",
"xa9" => "xe0xb8x89",
"xaa" => "xe0xb8x8a",
"xab" => "xe0xb8x8b",
"xac" => "xe0xb8x8c",
"xad" => "xe0xb8x8d",
"xae" => "xe0xb8x8e",
"xaf" => "xe0xb8x8f",
"xb0" => "xe0xb8x90",
"xb1" => "xe0xb8x91",
"xb2" => "xe0xb8x92",
"xb3" => "xe0xb8x93",
"xb4" => "xe0xb8x94",
"xb5" => "xe0xb8x95",
"xb6" => "xe0xb8x96",
"xb7" => "xe0xb8x97",
"xb8" => "xe0xb8x98",
"xb9" => "xe0xb8x99",
"xba" => "xe0xb8x9a",
"xbb" => "xe0xb8x9b",
"xbc" => "xe0xb8x9c",
"xbd" => "xe0xb8x9d",
"xbe" => "xe0xb8x9e",
"xbf" => "xe0xb8x9f",
"xc0" => "xe0xb8xa0",
"xc1" => "xe0xb8xa1",
"xc2" => "xe0xb8xa2",
"xc3" => "xe0xb8xa3",
"xc4" => "xe0xb8xa4",
"xc5" => "xe0xb8xa5",
"xc6" => "xe0xb8xa6",
"xc7" => "xe0xb8xa7",
"xc8" => "xe0xb8xa8",
"xc9" => "xe0xb8xa9",
"xca" => "xe0xb8xaa",
"xcb" => "xe0xb8xab",
"xcc" => "xe0xb8xac",
"xcd" => "xe0xb8xad",
"xce" => "xe0xb8xae",
"xcf" => "xe0xb8xaf",
"xd0" => "xe0xb8xb0",
"xd1" => "xe0xb8xb1",
"xd2" => "xe0xb8xb2",
"xd3" => "xe0xb8xb3",
"xd4" => "xe0xb8xb4",
"xd5" => "xe0xb8xb5",
"xd6" => "xe0xb8xb6",
"xd7" => "xe0xb8xb7",
"xd8" => "xe0xb8xb8",
"xd9" => "xe0xb8xb9",
"xda" => "xe0xb8xba",
"xdf" => "xe0xb8xbf",
"xe0" => "xe0xb9x80",
"xe1" => "xe0xb9x81",
"xe2" => "xe0xb9x82",
"xe3" => "xe0xb9x83",
"xe4" => "xe0xb9x84",
"xe5" => "xe0xb9x85",
"xe6" => "xe0xb9x86",
"xe7" => "xe0xb9x87",
"xe8" => "xe0xb9x88",
"xe9" => "xe0xb9x89",
"xea" => "xe0xb9x8a",
"xeb" => "xe0xb9x8b",
"xec" => "xe0xb9x8c",
"xed" => "xe0xb9x8d",
"xee" => "xe0xb9x8e",
"xef" => "xe0xb9x8f",
"xf0" => "xe0xb9x90",
"xf1" => "xe0xb9x91",
"xf2" => "xe0xb9x92",
"xf3" => "xe0xb9x93",
"xf4" => "xe0xb9x94",
"xf5" => "xe0xb9x95",
"xf6" => "xe0xb9x96",
"xf7" => "xe0xb9x97",
"xf8" => "xe0xb9x98",
"xf9" => "xe0xb9x99",
"xfa" => "xe0xb9x9a",
"xfb" => "xe0xb9x9b"
);

$string=strtr($string,$iso8859_11);
return $string;
>

The following Perl regular expression tests if a string is well-formed Unicode UTF-8 (Broken up after each | since long lines are not permitted here. Please join as a single line, no spaces, before use.):

Читайте также:  Iphone 6s датчик приближения калибровка

���������� ��������� �������� ����� LifeExample, ��������� ��� �������� ��� ����� ���������� �����, � �� ������ ������ ��� ���������� ��� ��������. � ������ � ���, ��� ��� ������� ������������ � ��������� ����������� ����������� ������ �� ��������� ������ �����. �� ������� ��������, �������� �������� � ���� ��������� �������, �� ��������� ������� ����������� �� �������� �����, � ����������.

������������ � ����� ���������������� ��� ������ ������� �������� ������� �� ��������������� ���, ������� ������ ���� �������� �� ��������. ��������, �� ��������� ���� �������� ������ ������������ �����������: ����������� �������� ����� �����!�, � �� ���� ��������� ���������� ����� ��������� �Здравствуй читате�ь моего б�ога!� � ��� ����� ��������� � ���� ���� ����������.

� ������ ������ �� �������� ��� �������� � ��� �� ������, ����� ������ �� ������������ � ������ � ������ ������ ����������� ������.

� ���, ����� ������ ������ ���������� ��������� ���� ���������, ��� ����� ������������� � �������� ��������� ��������. ����� ����� �� ���������� �������������� � ���� ������ ������, � ������ �� ���� ������ ������������ ����� � ����������� ������ ���� ������������ ������. ��� ��� ��� ���� ����� ��������� ������������ ��� ������������� ����� ������ � ����������� ��� � �������� �������� ����, �������� ����� �������� ������������ � ����� �� ������� ������. ������� ���������� �������� ASCII ���������, ��� �������� � ���� ���� 128 �������� ���������� �������� � ���� �������� ����� ������ � �������. ������ �� ASCII ��������� ������ ���������������� ��������� CP866KOI8-R, � �� ��� ����� ��������� ����������� ����������� ��������� windows-1251. �� ������ �� ��, ��� ��� ��� ��������� �������� ��� ����������� �������� ������, ��� ��� ���������� ���� �� ����� ������ ��� ���������� ��������. ���� ����� ������� � ��������� CP866, � ������� �������� ������������� �� � ������� ������� ����� windows-1251, �� � ���������� �� ������� �� �������� �����. ����� ����� ���������� ��� �������� ��������� ����� �������� ������.

����������� ����� �������� ��������� ������ �� ��� ��� ���������� � ������������ � ������ �������, �� ������� ������ ��� �� �������. � ����� ������� ������� ������ ������������ �������� ������������� ���������, � ��� �������� �������� ������� �� ������ � ���������������� ����, ��� �������� ����� ������� � ������. �� ����������� ���� ���������� ������� ��� ������ �������� � ���� ������������� ��������� utf-8, �� �������� ��� ��������� ������������ ����� ������� ������� ��������, � ������ ��� �� ��� ���� �� ������ ������ � ��� � ����� ��������� ����� ��������� ������.

����� ���� ������� ������������ �������� ���������, � ���������� ����� ������, ������ ����� ���������� � ������������ ��������.

���������� ������ ����� �� ����� ���������������� �����, ������� ������� ���������� ������� ��������� ����������� ������.

  1. ��������� ��������.
  2. ��������� ������ MySQL.
  3. ��������� ����� HTML ��������.
  4. ������ ������������ ��������� ������������.

�� ���� ���� ������������ �����, ������ �������������� ������ ���������, ����� � ������ ���, �� � ���������� utf-8, ������� ��� �������������)

� ��� ������ ��������� ����������, ��� ����� ������� ��� ����, ����� �������� � ����� ��������� ��������������� ������������.

��������� �������� (��� 1)

��� ���� ����� ��� ������� ����� ���� ���������, ����� ��� �������� ������ ������� ������� �������� ��������� � ���������� ������ ���������. ������� ������ ������ ��������� � NotePad++ . ��� �������� ������ PHP ����� ����� ���� � ������ Encoding, �� ��������� � ����, � �������� Convert to UTF-8 without BOM.

�������� ������ Convert to UTF-8 without BOM, � �� ������ Convert to UTF?8. ��������� without BOM �������� �� ��� � ������ ���� ������ ����� ����� ����������� ����������� ���������� � ��������� ���������, � �������� ��� �� ����� ������� ������ ����������. � ����������� ������� ���������� � BOM �� �������� ������������, �� ��������� ���� �� �������� ��������� ��������� �������� � ����� �� ������ ����� ��������� ������ ���������� ����������� � ������ ������ �����.

��������� ������ MySQL. (��� 2)

��� ����, ����� ������ ����� ��������� ������������ � ���� MySQL ����, ������������� ����������� phpMyAdmin. � ������� SQL ������� ������:

��������� ��� ������ ��� ���:

���� �� � �������� ���������� � ���������� �������

�������� �� ������ character_set_clientcharacter_set_results ������ ���������, ��� ��� ��� ��������� �������� �� ���������, � ������� ������ ��������� � ���� � �� ��������� � ������� ������ ������� �� ����.

���� ��� � ��� �����������, �� ����� � PHP ���� � ������ ���������� ������ ���������. �������� ��� ��� ����� ��������:

����� ����� ��� ���������� character_set_client, character_set_connectioncharacter_set_results ������ �������� utf8.
��������� � ��� ��� � ������� PHP �������� � ����� ������ ����� �������� � ������ PHP ������ � ����� ������ (����� 1-3).

��������� ����� HTML ��������. (��� 3)

������ ������ ������ � ���� � ������ �������������� � php �������, ����� ��������� �� ���������, � ���������� � �������� ��� �������� ������. �� ��� ��� �� ���, ����� ������� ��������� � ������� ��� ���� �����:

���� � c������ �������� php ��������:

���� ��������� HTML ����� ������ ����� ����� ���������, �� ������������ ����� ������� ��������� �� php �������.
����� ����� ��������� ������ ������� ��������� HTML � ����� .htaccess ������� � ���� ������:

������ ������������ ��������� ������������. (��� 4)

��� ���� ������ ������ ��� ���������� ����������� ������ ��� ��������� ������:

��� ��������� ����� ������, ������������� ������ ����� ������������ ������ ������� �������� � ����� ������������ �������, ����� ������ ������� �����.

�� ����������� �������� ������� ������������� ������������ � ���������� ��� ��������, �������� �����. ��� ���� ����� ��� ������������ ���� ��� ������ �������� ��� ������, ���������� ��������� � PHP ������� �������� ����� ������:

���� � ���� ������� �������� �������� ������� �� ������ ������ � PHP ��������� �������, �� ����� ������� �� � ������������.

������� ����� ������� ������:

����� �� ���������� ���������� ��������� ������ �������������� �� �������� �� E-mail ��� RSS ����� �����.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code