Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20148 > unrolled thread

utf8_decode -

Started by"leonardo.1+++" <leonardo.1@fastwebnet.it>
First post2015-12-17 16:57 +0100
Last post2015-12-19 17:42 +0100
Articles 13 — 5 participants

Back to article view | Back to it.comp.www.php


Contents

  utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-17 16:57 +0100
    Re: utf8_decode - fmassei@gmail.com - 2015-12-17 08:15 -0800
      Re: utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-17 18:03 +0100
        Re: utf8_decode - fmassei@gmail.com - 2015-12-17 09:06 -0800
          Re: utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-17 19:55 +0100
            Re: utf8_decode - fmigliori <fmigliori@gmail.com> - 2015-12-17 11:45 -0800
    Re: utf8_decode - Alessandro Pellizzari <shuriken@amiran.it> - 2015-12-18 07:54 +0000
      Re: utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-18 19:55 +0100
        Re: utf8_decode - Alessandro Pellizzari <shuriken@amiran.it> - 2015-12-19 12:53 +0000
          Re: utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-19 15:55 +0100
            Re: utf8_decode - Alessandro Pellizzari <shuriken@amiran.it> - 2015-12-19 15:09 +0000
              Re: utf8_decode - "leonardo.1+++" <leonardo.1@fastwebnet.it> - 2015-12-19 17:01 +0100
                Re: utf8_decode - Leonardo Serni <lserni@gmail.com> - 2015-12-19 17:42 +0100

#20148 — utf8_decode -

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-17 16:57 +0100
Subjectutf8_decode -
Message-ID<gXAcy.37910$pt.21996@tornado.fastwebnet.it>
Se io uso questo metodo:
$Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
Mi da questo errore.
Notice: Uninitialized string offset: 44 in 
D:\job\htdocs\stelle\Variante_K.php on line 40
La ragione sta nella eccessiva quantità di caratteri, ma come posso 
ovviarvi?
Saluti
Leonardo

-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [next] | [standalone]


#20149

Fromfmassei@gmail.com
Date2015-12-17 08:15 -0800
Message-ID<6c758250-051c-49f1-aca2-2e9764833ee4@googlegroups.com>
In reply to#20148
On Thursday, December 17, 2015 at 4:57:02 PM UTC+1, leonardo.1+++ wrote:
> Se io uso questo metodo:
> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
> Mi da questo errore.
> Notice: Uninitialized string offset: 44 in 
> D:\job\htdocs\stelle\Variante_K.php on line 40
> La ragione sta nella eccessiva quantità di caratteri, ma come posso 
> ovviarvi?

Non credo sia quello il problema...

Ciao!

[toc] | [prev] | [next] | [standalone]


#20150

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-17 18:03 +0100
Message-ID<eVBcy.37913$pt.12013@tornado.fastwebnet.it>
In reply to#20149
Il 17/12/2015 17:15, fmassei@gmail.com ha scritto:
> On Thursday, December 17, 2015 at 4:57:02 PM UTC+1, leonardo.1+++ wrote:
>> Se io uso questo metodo:
>> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
>> Mi da questo errore.
>> Notice: Uninitialized string offset: 44 in
>> D:\job\htdocs\stelle\Variante_K.php on line 40
>> La ragione sta nella eccessiva quantità di caratteri, ma come posso
>> ovviarvi?
>
> Non credo sia quello il problema...
>
> Ciao!
>
Qualche idea su quale sia?
Leonardo


-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [prev] | [next] | [standalone]


#20151

Fromfmassei@gmail.com
Date2015-12-17 09:06 -0800
Message-ID<f034de5a-2fd1-49f9-945c-0a2edb8694b6@googlegroups.com>
In reply to#20150
On Thursday, December 17, 2015 at 6:03:07 PM UTC+1, leonardo.1+++ wrote:
> Il 17/12/2015 17:15, fmassei@gmail.com ha scritto:
> > On Thursday, December 17, 2015 at 4:57:02 PM UTC+1, leonardo.1+++ wrote:
> >> Se io uso questo metodo:
> >> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
> >> Mi da questo errore.
> >> Notice: Uninitialized string offset: 44 in
> >> D:\job\htdocs\stelle\Variante_K.php on line 40
> >> La ragione sta nella eccessiva quantità di caratteri, ma come posso
> >> ovviarvi?
> >
> > Non credo sia quello il problema...
> >
> > Ciao!
> >
> Qualche idea su quale sia?
>

Io vedrei cosa c'è attorno alla riga 40: che io sappia utf8_decode non
ha (normalmente) questo tipo di problemi, per cui cercherei errori più
comuni lì intorno.

Ciao!

[toc] | [prev] | [next] | [standalone]


#20152

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-17 19:55 +0100
Message-ID<MyDcy.37918$pt.27426@tornado.fastwebnet.it>
In reply to#20151
Il 17/12/2015 18:06, fmassei@gmail.com ha scritto:
> On Thursday, December 17, 2015 at 6:03:07 PM UTC+1, leonardo.1+++ wrote:
>> Il 17/12/2015 17:15, fmassei@gmail.com ha scritto:
>>> On Thursday, December 17, 2015 at 4:57:02 PM UTC+1, leonardo.1+++ wrote:
>>>> Se io uso questo metodo:
>>>> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
>>>> Mi da questo errore.
>>>> Notice: Uninitialized string offset: 44 in
>>>> D:\job\htdocs\stelle\Variante_K.php on line 40
>>>> La ragione sta nella eccessiva quantità di caratteri, ma come posso
>>>> ovviarvi?
>>>
>>> Non credo sia quello il problema...
>>>
>>> Ciao!
>>>
>> Qualche idea su quale sia?
>>
>
> Io vedrei cosa c'è attorno alla riga 40: che io sappia utf8_decode non
> ha (normalmente) questo tipo di problemi, per cui cercherei errori più
> comuni lì intorno.
>
> Ciao!
>

<?php

$Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
for($i=0; $i<strlen($Testo); $i++)
{
echo $Testo[$i];
}

?>

lo strano è de se levo delle lettere o ne aggiungo funzioan bene.

-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [prev] | [next] | [standalone]


#20153

Fromfmigliori <fmigliori@gmail.com>
Date2015-12-17 11:45 -0800
Message-ID<863ffe9a-8bcd-4acc-acfa-3e58bc9d20c9@googlegroups.com>
In reply to#20152
La codifica dell'editor è UTF-8?

[toc] | [prev] | [next] | [standalone]


#20154

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2015-12-18 07:54 +0000
Message-ID<ddhsdnFi0u1U1@mid.individual.net>
In reply to#20148
Il Thu, 17 Dec 2015 16:57:01 +0100, leonardo.1+++ ha scritto:

> Se io uso questo metodo:
> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");

> eccessiva quantità di caratteri, ma come posso ovviarvi?

Semplice: non usare utf8_decode. :)

È una delle funzioni che andrebbero rimosse da PHP, e speravo lo facessero 
con la 7, ma troppa gente la usa senza sapere cosa fa e avrebbero rotto il 
70% di Internet.

utf8_decode cerca di trasformare un testo in utf8 in un testo in latin1. 
Naturalmente siccome latin1 supporta 255 caratteri e utf8 qualche milione, 
poi la gente si lamenta che ha i cubetti neri sul browser.

Il tuo testo è in utf8? Perché ti serve trasformarlo in latin1?

E in ogni caso, iconv è sempre meglio, almeno devi essere esplicito in 
quello che chiedi.

Bye.

[toc] | [prev] | [next] | [standalone]


#20155

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-18 19:55 +0100
Message-ID<PEYcy.37959$pt.31458@tornado.fastwebnet.it>
In reply to#20154
Il 18/12/2015 08:54, Alessandro Pellizzari ha scritto:
> Il Thu, 17 Dec 2015 16:57:01 +0100, leonardo.1+++ ha scritto:
>
>> Se io uso questo metodo:
>> $Testo = utf8_decode("Un giorno senza un sorriso è un giorno perso");
>
>> eccessiva quantità di caratteri, ma come posso ovviarvi?
>
> Semplice: non usare utf8_decode. :)
>
> È una delle funzioni che andrebbero rimosse da PHP, e speravo lo facessero
> con la 7, ma troppa gente la usa senza sapere cosa fa e avrebbero rotto il
> 70% di Internet.
>
> utf8_decode cerca di trasformare un testo in utf8 in un testo in latin1.
> Naturalmente siccome latin1 supporta 255 caratteri e utf8 qualche milione,
> poi la gente si lamenta che ha i cubetti neri sul browser.
>
> Il tuo testo è in utf8? Perché ti serve trasformarlo in latin1?
>
> E in ogni caso, iconv è sempre meglio, almeno devi essere esplicito in
> quello che chiedi.
>
> Bye.
>

In effetti non so bene come usarla.
Ho una stringa con dentro dei caratteri accentati e voglio vengano visti 
accentati.
Fra l'altro mi da dei problemi con gli apostrofi.
Mi consigli qualche link?
Leonardo



-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [prev] | [next] | [standalone]


#20156

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2015-12-19 12:53 +0000
Message-ID<ddl2b3Fc4fqU2@mid.individual.net>
In reply to#20155
Il Fri, 18 Dec 2015 19:55:43 +0100, leonardo.1+++ ha scritto:

> Ho una stringa con dentro dei caratteri accentati e voglio vengano visti
> accentati.
> Fra l'altro mi da dei problemi con gli apostrofi.
> Mi consigli qualche link?

Purtroppo in informatica non esiste "una stringa con caratteri accentati", 
ma solo "una stringa codificata con un certo charcode".

Devi scoprire come è codificata la tua stringa, poi scoprire come è 
codificato il tuo output, e infine, se necessario, convertire l'input 
nell'output.

Se la stringa è latin1 e l'output è utf8, puoi usare utf8_encode() (non 
decode) che è safe. Se non hai esattamente questa combinazione, usa iconv.

Bye.

[toc] | [prev] | [next] | [standalone]


#20157

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-19 15:55 +0100
Message-ID<Rdedy.37980$pt.35030@tornado.fastwebnet.it>
In reply to#20156
Il 19/12/2015 13:53, Alessandro Pellizzari ha scritto:
> Il Fri, 18 Dec 2015 19:55:43 +0100, leonardo.1+++ ha scritto:
>
>> Ho una stringa con dentro dei caratteri accentati e voglio vengano visti
>> accentati.
>> Fra l'altro mi da dei problemi con gli apostrofi.
>> Mi consigli qualche link?
>
> Purtroppo in informatica non esiste "una stringa con caratteri accentati",
> ma solo "una stringa codificata con un certo charcode".
>
> Devi scoprire come è codificata la tua stringa, poi scoprire come è
> codificato il tuo output, e infine, se necessario, convertire l'input
> nell'output.
>
> Se la stringa è latin1 e l'output è utf8, puoi usare utf8_encode() (non
> decode) che è safe. Se non hai esattamente questa combinazione, usa iconv.
>
> Bye.
>
ok, esiste un comando per scoprire come una stringa è codificata?
Saluti
Leonardo.


-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [prev] | [next] | [standalone]


#20158

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2015-12-19 15:09 +0000
Message-ID<ddla8nFc4fqU3@mid.individual.net>
In reply to#20157
Il Sat, 19 Dec 2015 15:55:45 +0100, leonardo.1+++ ha scritto:

> ok, esiste un comando per scoprire come una stringa è codificata?

mb_detect_encoding(), ma è molto limitato.

Non c'è un modo sicuro per determinare l'encoding, visto che per lui sono 
solo valori a 8 bit, quindi numeri da 0 a 255, tutti validi.

Devi anche passargli tu una lista di encoding da controllare in ordine.

In generale più è lunga la stringa e più è esotico il charset e più facile 
è che individui il giusto encoding, sempre che tu glieli abbia passati 
nell'ordine giusto.

L'unico modo sicuro per saperlo è saperlo già, chiedendo a chi ha scritto 
quella stringa.

Bye.

[toc] | [prev] | [next] | [standalone]


#20159

From"leonardo.1+++" <leonardo.1@fastwebnet.it>
Date2015-12-19 17:01 +0100
Message-ID<ybfdy.37986$pt.16038@tornado.fastwebnet.it>
In reply to#20158
Il 19/12/2015 16:09, Alessandro Pellizzari ha scritto:
> Il Sat, 19 Dec 2015 15:55:45 +0100, leonardo.1+++ ha scritto:
>
>> ok, esiste un comando per scoprire come una stringa è codificata?
>
> mb_detect_encoding(), ma è molto limitato.
>
> Non c'è un modo sicuro per determinare l'encoding, visto che per lui sono
> solo valori a 8 bit, quindi numeri da 0 a 255, tutti validi.
>
> Devi anche passargli tu una lista di encoding da controllare in ordine.
>
> In generale più è lunga la stringa e più è esotico il charset e più facile
> è che individui il giusto encoding, sempre che tu glieli abbia passati
> nell'ordine giusto.
>
> L'unico modo sicuro per saperlo è saperlo già, chiedendo a chi ha scritto
> quella stringa.
>
> Bye.
>
OK
tanto per capire, mettiamo che io sto facendo un test in uno scritp PHP
Ho la variabile $Testo="questo è il test d'allora";
Contiene una e accentata ed un apostrofo, non c'è html ma solo lo script 
nella pagina PHP.
con il comando:
echo $Testo;
Com'è che faccio vedere a video la frase esattamente come la ho scritta 
Saluti
Leonardo


-- 
Non sono su facebook
Se anche tu vuoi cancellarti
http://www.giardiniblog.com/come-cancellarsi-da-facebook-eliminare-account/

[toc] | [prev] | [next] | [standalone]


#20160

FromLeonardo Serni <lserni@gmail.com>
Date2015-12-19 17:42 +0100
Message-ID<702b7bl92c9hjsglm8vqsf8j82e82i7f9l@L.Serni>
In reply to#20159
On Sat, 19 Dec 2015 17:01:33 +0100, "leonardo.1+++" <leonardo.1@fastwebnet.it> wrote:

>tanto per capire, mettiamo che io sto facendo un test in uno scritp PHP
>Ho la variabile $Testo="questo è il test d'allora";
>Contiene una e accentata ed un apostrofo, non c'è html ma solo lo script 
>nella pagina PHP.
>con il comando:
>echo $Testo;
>Com'è che faccio vedere a video la frase esattamente come la ho scritta 

Devi dire al browser remoto di usare lo stesso encoding che stai usando tu.

Per esempio, se la frase l'hai scritta con un editor Latin1, devi inviargli
qualcosa tipo

	Header("Content-Type:text/html;charset=ISO-8859-15");

mentre se è UTF-8,

	Header("Content-Type:text/html;charset=utf-8");

Per capire quale encoding tu stia usando, prova nelle opzioni dell'editor -
o altrimenti puoi andare a tentativi. Manda al browser prima utf-8, poi per
sicurezza win-1252, poi iso-8859-15, e vedi quale funziona.

Leonardo

-- 

Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web