¿Por qué es el resultado de la siguiente instrucción 3 y no 1?(鉑) funciones de cadena y UTF8 en php
echo mb_strlen("鉑");
cosa es que
echo "鉑";
voluntad correctamente la salida de esta señal que se codifica como UTF-8.
¿Por qué es el resultado de la siguiente instrucción 3 y no 1?(鉑) funciones de cadena y UTF8 en php
echo mb_strlen("鉑");
cosa es que
echo "鉑";
voluntad correctamente la salida de esta señal que se codifica como UTF-8.
asegúrese de configurar la codificación interna adecuada:
<?php
echo mb_internal_encoding() . '<br />';
echo mb_strlen('鉑', 'utf-8') . '<br />';
echo mb_strlen('鉑') . '<br />';
mb_internal_encoding('utf-8');
echo mb_internal_encoding() . '<br />';
echo mb_strlen('鉑') . '<br />';
// ISO-8859-1
// 1
// 3
// UTF-8
// 1
Usted likeliy que añadir el juego de caracteres:
echo mb_strlen("鉑","utf-8");
Al igual que middaparka sugiere;) – Erik
Establecimiento de la codificación a su función mb_strlen:
echo mb_strlen("鉑", "UTF-8");
Si lo hace lo siguiente, obtendrá la respuesta correcta
echo mb_strlen("鉑", "UTF-8");
Supongo que php está por defecto en ASCII, que produce una respuesta de 3. También encontré una muy en artículo interesante sobre Codificación para cualquier persona interesada en por qué y cómo funciona. http://www.joelonsoftware.com/articles/Unicode.html
Es sólo una idea, pero supongo que usted ha intentado 'mb_strlen ('鉑', 'UTF-8');'? –