Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #20148 > unrolled thread
| Started by | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| First post | 2015-12-17 16:57 +0100 |
| Last post | 2015-12-19 17:42 +0100 |
| Articles | 13 — 5 participants |
Back to article view | Back to it.comp.www.php
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
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-12-17 16:57 +0100 |
| Subject | utf8_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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2015-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]
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2015-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]
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-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]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2015-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2015-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]
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2015-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]
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2015-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]
| From | "leonardo.1+++" <leonardo.1@fastwebnet.it> |
|---|---|
| Date | 2015-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]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2015-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