Quiero detectar un sistema operativo de codificación del sistema de archivos como predeterminado, como el sistema operativo Windows en una versión de idioma diferente, utilizará una codificación diferente (iso-8859-1, ms950, big5, gb2312..etc) Entonces, ¿cómo puedo detectar el diferente sistema operativo de codificación en PHP? ¿Alguna idea? Gracias.¿Cómo detectar la codificación del sistema operativo en php?
Respuesta
¿Por qué no utilizar mb_detect_encoding()?
Linux no tiene una codificación, los nombres de archivo se almacenan en cadenas binarias y pueden contener cualquier cosa. Interpretar eso en una codificación específica depende de la aplicación. La mayoría de las veces esto simplemente será UTF-8. Pero sí, depende del 'espectador' de los nombres de archivo.
Acceso al sistema de archivos en OS/X va a utilizar UTF-8 normalización forma D.
Por desgracia, no puedo responder a lo que es en las ventanas. Internamente se almacena como una variación de UTF-16, pero accediendo a través de PHP en mi máquina, la API es CP-1252, pero sí, esto depende del idioma.
Trate
print_r(explode(";", setlocale(LC_ALL, 0)));
este caso es necesario convertir la página de códigos para codificar
sistema de archivos no se tener un tipo de codificación, cada archivo puede utilizar diferentes tipos de codificación, por lo que todo lo que necesita es encontrar una codificación correcta para procesar la cadena de nombre de archivo.
Para detectar la codificación de un nombre de archivo, puede "intentar" convertir ese nombre de archivo a toda la lista de codificación conocida y comparar la cadena de nombre de archivo original con la cadena convertida, si es igual, entonces esa codificación es lo que está buscando .
Convierta una cadena a un tipo de codificación que uso This way. Entonces para hacer este trabajo, puede ver el siguiente código para un ejemplo.
function getActuallEncoding($text) {
$encodingList = array('UTF-8', 'gb2312', 'ISO-8859-1', 'big5'); // Add more if you need.
foreach($encodingList as $oneEncode) {
$oneResult = iconv(mb_detect_encoding($text, mb_detect_order(), true), $oneEncode, $text);
if(md5($oneResult) == md5($text)) return $oneEncode;
}
return "UNKNOWN"; // This return value may cause problem, just let you know.
}
Espero que ayude.
- 1. Detectar el sistema operativo
- 2. Detectar sistema operativo en Clojure
- 3. ¿Cómo detectar el sistema operativo en ejecución?
- 4. Detectar la versión exacta del sistema operativo desde el navegador
- 5. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 6. ¿Cómo puedo detectar el sistema operativo en Perl?
- 7. ¿Cómo detectar el sistema operativo en un archivo make?
- 8. Cómo determinar el sistema operativo
- 9. Detectar el sistema operativo de la extensión de Firefox
- 10. PHP detección de la codificación del sistema de archivos
- 11. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 12. ¿Cómo detectar el sistema operativo de una aplicación Silverlight?
- 13. cómo detectar el sistema operativo actual de Gradle
- 14. ¿Cuál es la forma más fácil de detectar el sistema operativo del usuario en Rails 3?
- 15. Cómo obtener la versión del sistema operativo asp.net
- 16. Cómo determinar la plataforma del sistema operativo con WMI?
- 17. ¿PHP tiene una función para detectar el sistema operativo en el que se ejecuta?
- 18. Requisitos del sistema operativo para arc4random_uniform()
- 19. Tiempo de compilación del sistema operativo
- 20. Pregunta de arranque del sistema operativo básico
- 21. ¿Cómo se implementa sleep en el nivel del sistema operativo?
- 22. ¿Cómo se lee 'List separator' del sistema operativo en Java?
- 23. ¿Cómo cargo las variables del sistema operativo en PL/SQL?
- 24. Cómo determinar el sistema operativo en elisp?
- 25. Sistema operativo de espacio aislado
- 26. ¿Cómo habilita mod_rewrite en cualquier sistema operativo?
- 27. ¿Cómo puedo reemplazar el calendario predeterminado del sistema operativo Android?
- 28. Actualizar sistema operativo Android programáticamente
- 29. Obtener el tamaño de la memoria del sistema operativo Java
- 30. Obtener usuarios del sistema operativo y número de versión
¿Ha marcado otras preguntas aquí en SO con respecto a la identificación de la codificación? Mire esto, por ejemplo: http://stackoverflow.com/questions/910793/php-detect-encoding-and-make-everything-utf-8 O este: http://stackoverflow.com/questions/505562/ detectar-file-encoding-in-php –
No estoy seguro de que el sistema de archivos delegue una codificación ... mb_list_encodings devolverá una lista de codificaciones compatibles. – Incognito
Eso no es lo que quiero responder y esa es una pregunta diferente con mi – Jasper