рд╡реЗрдмрдорд╛рд╕реНрдЯрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рд╕рд╛рдЗрдЯ рдХреЛ рдирдП рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

"рдПрдХ рджрд┐рди рдЦреЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдлрд┐рд░ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░реЗрдВ" ┬й рдкрдВрдЦ, рдкреИрд░, рдкреВрдВрдЫ



рдЗрддрдиреА рджреЗрд░ рдкрд╣рд▓реЗ, рдореИрдВ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рднрд╛рдЧреНрдпрд╢рд╛рд▓реА" рдерд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬрд╝ -1251 рд╕реЗ рдпреВрдЯреАрдПрдл -8 рддрдХред рдлрд┐рд░ рдПрдХ рдФрд░ - рдЕрдзрд┐рдХ, рддреАрд╕рд░реЗ рдкрд░ рдореИрдВ рдЯреВрдЯ рдЧрдпрд╛, рдФрд░ рдКрдкрд░ рдХреЗ рд╕рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдЧрдВрд╡рд╛рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░, рдПрдХ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрднреА рднреА рдЙрдбрд╝рд╛рди рднрд░реАред



рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░:

SDIR = "/ usr / рд╕реНрдерд╛рдиреАрдп / apache2 / htdocs / site.ru /" - рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / рдЕрдВрдд рдореЗрдВ

SCP = "CP1251" - iconv рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд (рд╕реЗ) рдХреЛрдбрдкреЗрдЬ

EXT = "ред *ред \ _ (Htm [l] * | php [3] * | jsред Css) $" - рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдЬреИрд╕реЗ .htm, .html, .php, .php3, рдпрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред js .css)

рдПрдлрд╕реАрдПрд╕ = "рд╡рд┐рдВрдбреЛрдЬрд╝ -1251" - рдореЗрдЯрд╛ рдХреЛрдбрд╕реЗрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкреГрд╖реНрда рдХрд╛ рдирд╛рдо = рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ



рд▓рдХреНрд╖реНрдп рдкреИрд░рд╛рдореАрдЯрд░:

DROP_STRUCT = true - рдорд╛рди рдХреЛ рдЧрд▓рдд, рд╕рддреНрдп, рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ: рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП



DDIR = "/ usr / рд╕реНрдерд╛рдиреАрдп / apache2 / htdocs / new.site.ru /" - рдПрдХ рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / рдЕрдВрдд рдореЗрдВ (рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)

DCP = "UTF-8" - iconv рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп (рд╕реЗ) рдХреЛрдб рдкреГрд╖реНрда

TCS = "UTF-8" - рдореЗрдЯрд╛ рдХреЛрдбрд╕реЗрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХреЛрдб рдкреГрд╖реНрда рдХрд╛ рдирд╛рдо = рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ



рдФрд░ рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА рд╣реИ:



#!/bin/bash



# --- CONFIG SECTION ---



# Source Dir's params



SDIR="/usr/local/apache2/htdocs/site.ru/" # with slash '/' in the end

SCP="CP1251" # codepage for 'iconv'

EXT=".*\.(htm[l]*|php[3]*|js|css)$" #files extensions for coding

FCS="windows-1251" # charset for replace



# Destination Dir's params



DROP_STRUCT=true # false, true



DDIR="/usr/local/apache2/htdocs/new.site.ru/" # with slash '/' in the end

DCP="UTF-8" # codepage for 'iconv'

TCS="UTF-8" # new charset



# --- END CONFIG SECTION ---



# Drop structure

#

if $DROP_STRUCT

then

rm -dfr $DDIR*

fi



# Make new copy

#

cp -aR $SDIR* $DDIR



# Flush miscoded files

#

find $DDIR -type f | grep -E "$EXT" | xargs -i rm -f {}



# Convert From To

#

find $SDIR -type f | grep -E "$EXT" | sed "s#$SDIR##" | xargs -i echo {} | \

while read f

do

iconv -c -f $SCP -t $DCP -o "$DDIR$f" "$SDIR$f"



# Revert MODE & OWNER

chmod `find "$SDIR$f" -maxdepth 0 -printf "%m"` "$DDIR$f"

chown `find "$SDIR$f" -maxdepth 0 -printf "%u:%g"` "$DDIR$f"



# Replace strings

perl -pi -e "s#content\s*\=\s*[\"'].*?charset\s*=\s*$FCS.*?[\"']#content=\"text/html; charset=$TCS\"#g" "$DDIR$f"

done









рдФрд░ рдЕрдм, рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд┐рдВрджреБред



1. рд╢рд╛рдпрдж UTF-8 рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ charset = UTF-8 рдХреЗ рд╕рд╛рде рдореЗрдЯрд╛ рдХрдВрдЯреЗрдВрдЯ рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж рднреА, рдЖрдкрдХреЛ рдЕрднреА рднреА рдПрдмреНрд░рдХрд╛рдбрдмрд░рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ UTF-8 рдореЗрдВ рдирдИ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП, PHP рдХреЗ рд▓рд┐рдП default_charset рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдХреЛрдб рдкреЗрдЬ (рд╡рд┐рдВрдбреЛрдЬрд╝ -1251) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдореИрдВ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (httpd.conf) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ:



php_admin_value default_charset UTF-8



2. рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдм рдХреЛрдИ рднреА рд╕рд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд╛рд╣рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ UTF-8 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ phpMyAdmin рдпрд╛ mysqldump рд╣реИ, рддреЛ рдЕрддреНрдпрдзрд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╢рд╛рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреА рдФрд░ рд╕реЗрд╡рд╛ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рдЪрд╛рд░ рдХреА рд╕рд╛рджрдЧреА рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рд╣рдо рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рд╣реА рдЖрдЗрдХрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рдкреЗрдЬреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднрд░рддреЗ рд╣реИрдВред



4 рдореА @ рдЯреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдХ рдФрд░ рднреА рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИ! рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;



рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЭрдВрдЭрд░реА рднреА рдирд┐рдХрд▓ рд╕рдХрддреА рд╣реИ, рдЬреЛ рд░реВрд╕реА рдХреЗ 'рдЖрдИ' рдХреЗ рдЧрд▓рдд рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ, MySQL рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛрдб рдкреЗрдЬ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдПрдХ рдордЬрд╛рдХ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреА рд╣реЛрдВрдЧреА:



mysql_query ("рд╕реЗрдЯ рдирд╛рдо 'utf8'");



рдпрд╛ рдЕрдЧрд░ рдпрд╣ рдЕрдиреБрдореЗрдп рд╣реИ, рддреЛ MySQL рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд╡рд░реНрдг-рд╕реЗрдЯ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдЯрдХрд░рд╛рд╡ рдХреЛ рдмрджрд▓реЗрдВред



рдпрд╛рдж рд░рдЦрдирд╛ !!! рдЗрди рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдВ, рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг, рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред



рд╕рдлрд▓ рдЕрдиреБрд╡рд╛рдж!



рд╕реНрд░реЛрдд: рд╣рд╛рде рдореЗрдВ рдиреЛрдЯреНрд╕



All Articles