mysql - php - utf8 encoding the text twice. Will it have any negative effect? -
this question has answer here:
- utf-8 way through 14 answers
mysql database returns utf8 encoded text. basically, used pdo attribute mysql_attr_init_command , passed:
set character set utf8 it returns utf8 encoded text. text in database plain utf8, &alum; returned is.
so need call utf8_encode again in php actual utf8 char. working fine.
i know, if have negative effect encoding text twice or not affect other encoding non-encoded text above?
thanks!
edit:
i using following code right characters:
$val = utf8_encode(addslashes(html_entity_decode(strip_tags($val)))); so convert following text from:
<font color=\"#222222\" face=\"arial, sans-serif\" size=\"2\"> test event </font><span style=\"color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px;\">persönlichkeit universität"</span> (this text coming database, after calling set character set utf8)
to:
test event persönlichkeit universität\"
ä html entity shouldn't have made database in first place. has nothing utf-8.
if call utf8_encode on "ä" nothing happen encoding same iso-8859-1 , utf-8. see character represents in browser because interpreted html.
you should never, normal web app developer, call utf8_encode. don't need iso-8859-1 utf-8 conversion, firstly because browsers , mysql not support it. alias latin1 , iso-8859-1 windows-1252 compatibility. secondly, can cause browsers , database send data in utf-8 utf-8 , no conversion necessary.
you shouldn't convert html entities either - unnecessary because utf-8 can represent characters.
the data in database should not have concern html - data there should canonical authorative as-is representation of data. right there confusion whether data literally meant ä or ä causes problems this:

image thedailywtf
Comments
Post a Comment