No hay especificaciones para los archivos INI, pero para lo que sea, enumeraré el comportamiento de unas pocas implementaciones de los idiomas que conozco.
de Python incorporada configparser
módulo ofrece una getboolean
que se comporta de la siguiente manera:
los valores aceptados son ... '1'
, 'yes'
, 'true'
y 'on'
, que causan este método para devolver True
y '0'
, 'no'
, 'false'
y 'off'
, lo que hace que devuelva False
.
En parse_init_file
de PHP, por el contrario:
Cadena Valores "verdadero", "en" y "sí" se convierten en VERDADERO. "falsa", "off", "no" y "ninguna" se consideran FALSO.
Mientras tanto,.NET no tiene soporte integrado para el análisis INI, pero su biblioteca de análisis INI más popular, ini-parser, no ofrece soporte alguno para el análisis automático de valores y los devuelve a todos como cadenas. Sus ejemplos de Getting Started muestran el análisis de booleanos con Boolean.Parse
de .NET, que aceptará las cadenas "true"
y "false"
(con mayúsculas) y lanzará una excepción si se le da algo más.
En resumen: no hay absolutamente ninguna coherencia en esta pregunta entre las diferentes implementaciones de los analizadores INI.
recomendaría:
- Si sólo se va a analizar el INI utilizando un único analizador, comprobar cómo se comporta de esa analizador y las embarcaciones de su INI para satisfacer su aplicación particular.
- Si necesita admitir una amplia gama de analizadores (por ejemplo, para la interoperabilidad del lenguaje), abandone INI como un formato completo, o evite por completo usar cualquiera de los valores booleanos mágicos que algunos analizadores entienden y en su lugar
1
y 0
.