That's possibly it ;)

If you can't convert the whole file (per Andries suggestions) I'd suggest 
saving to UTF-8, and then re-typing any accented chars (very important step) 
and saving again - just makes sure the new encoding takes hold instead of 
leaving older chars still as MacEncode crap ;). Editors are horribly good at 
telling you something is UTF-8 when it's actually not.

Paddy

 
Pádraic Brady

http://blog.astrumfutura.com
http://www.patternsforphp.com
OpenID Europe Foundation Member-Subscriber


----- Original Message ----
From: Roberto Bouza <[EMAIL PROTECTED]>
To: Pádraic Brady <[EMAIL PROTECTED]>
Sent: Friday, October 5, 2007 3:24:32 PM
Subject: Re: [fw-general] UTF-8 and Views... weird chars

Padraic,

I'm using right now EClipse with the PDT PlugIn. I notice that the encoding of 
the editor (the general preference for all the plugins) was MacEncode. I don't 
know if this is affecting the .php and .phtml files I'm generating so I changed 
it to UTF-8 (But I haven't saved the file yet). let me do that and I let you 
know.


If this is the case. That means that all the files that manipulates the 
string(s) need to be in UTF-8?

Again, thanks for your prompt answer.

Roberto.

On 10/5/07, 
Pádraic Brady <[EMAIL PROTECTED]> wrote:
Hi Roberto,

Can rule out headers then...

The email text you sent showed:
<h1>La Ca�a de Az�car</h1> 


Which means my client doesn't recognise what you pasted into your message as 
UTF-8. 
Did the output show the actual accented letters? Entities? or the same marks as 
above?

Based on the headers being correct, it looks more like the original text not 
being properly encoded - as far as I know ZF does no string manipulation that 
would corrupt the encoding. I'd suggest taking the file you have with the 
string, re-saving it as UTF-8, and then deleting and re-typing the text (sounds 
really weird, but some editors/IDEs can be pretty bad at re-opening files in 
the wrong encoding without you noticing, esp. on Windows).


P.S. I ran the same test you had and I'm getting UTF-8 proper - which editor 
are you using?

Best regards :)

Paddy

 

Pádraic
 Brady


http://blog.astrumfutura.com
http://www.patternsforphp.com

OpenID Europe Foundation Member-Subscriber



----- Original Message ----
From: Roberto Bouza <[EMAIL PROTECTED]>

To: Pádraic Brady <[EMAIL PROTECTED]>
Sent: Friday, October 5, 2007 2:09:21 PM

Subject: Re: [fw-general] UTF-8 and Views... weird chars

Padraic,

Here is the
 source:
-------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd";>
<html xmlns="
http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>La Ca�a de Az�car</title>
</head>
<body>

<h1>La Ca�a de Az�car</h1> 

Encoding: UTF-8<br> 
La Caa de Azcar<br> 
</body>
</html>
--------

But what I'm worried about is that on a plain PHP file I can see the encoding 
just fine.



I'm using the mb_* just as a test. I was using plain controller/view with 
escape but I never saw the chars fine so I was just testing around.

I checked also with Live Headers. Here is the output (I see it fine, but maybe 
you can catch something).


-----
GET / HTTP/1.1

Host: www.artcubbies.com

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:
1.8.1.7) Gecko/20070914 Firefox/2.0.0.7


Accept: 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=
0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Cache-Control: max-age=0



HTTP/1.x 200 OK

Date: Fri, 05 Oct 2007 13:08:18 GMT

Server: Apache/2.2.4 (Fedora)

X-Powered-By: PHP/5.2.4


Content-Length: 428

Connection: close

Content-Type: text/html; charset=utf-8
------

Thanks for the tips with the Headers.

Thank you for your help.




On 10/5/07, Pádraic Brady <[EMAIL PROTECTED]> wrote:

Open up your source view for the bad output and check what it contains.

If you want to display UTF-8, you need to maintain a UTF-8 encoding at all 
times. I'm also not sure about all the mb_* contortions you're going through. 
Why are you converting from UTF-8 to the IANA HTML-ENTITIES? Use Zend_View's 
escape() method which will run it through htmlspecialchars() and leave any 
multibyte characters intact.


I would also avoid using header() directly - there's a response object floating 
around your controller layer which can be used to handle headers. You can 
access it from within a base controller or from the front controller. This is 
one likely suspect. See:

http://framework.zend.com/manual/en/zend.controller.response.html#zend.controller.response.headers


Do you have tools like Live Headers (Firefox extension) to view the actual 
headers being sent to your browser? The question marks are a sure sign that the 
header encoding and output encoding are not matching causing the browser to 
substitute ? for characters it sees as being malformed.


Paddy
 
Pádraic Brady



http://blog.astrumfutura.com

http://www.patternsforphp.com


OpenID Europe Foundation Member-Subscriber




----- Original Message ----
From: Roberto Bouza <[EMAIL PROTECTED]>
To: 

[email protected]
Sent: Friday, October 5, 2007 5:41:24 AM
Subject: [fw-general] UTF-8 and Views... weird chars

Hello Everyone.

I've been battling with this for a while. Now I need some help to try to figure 
this out.


I just want to show on a view accented characters or something like:

$str = "La Caña de Azúcar"


If I use PHP by itself it works fine. Ex:

$str2 = mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8');
echo $str2
echo $str

That code on PHP returns "La Caña de Azúcar" (twice) now if do that piece of 
code on Zend Framework on the controller like:


$this->view->title = $str;
$this->view->encoding = "Encoding: " . mb_detect_encoding($str);
$this->view->converted = mb_convert_encoding($str, 'HTML-ENTITIES', 
mb_detect_encoding($str));


I get:

La Ca?a de Az?car
Encoding: UTF-8
La Caa de Azcar

I've set up on the view:

$this->setEncoding('UTF-8');

I have set up the header:

header('Content-Type: text/html; charset=utf-8');


No luck. Any help would be greatly appreciated.

Thank you.













      Don't let your dream ride pass you by.  

  Make it a reality with Yahoo! Autos.



 












      Tonight's top picks. What will you watch tonight? 
Preview the hottest shows on Yahoo! TV.  
  









       
____________________________________________________________________________________
Looking for a deal? Find great prices on flights and hotels with Yahoo! 
FareChase.
http://farechase.yahoo.com/

Reply via email to