Pregunta:
Estamos instalando ordenando una base de datos de Oracle configurada y nos preguntan qué codificación de caracteres nos gustaría tener. La aplicación (en Java) está solo en inglés, pero los usuarios son de diferentes partes del mundo.
¿Existe alguna motivación para NO usar UTF8 u otro juego de caracteres Unicode?
Respuesta:
Debería tener dos opciones para hacer:
- Elija el conjunto de caracteres de su base de datos (utilizado por los tipos de datos
VARCHAR2
,CHAR
,CLOB
). - Elija su juego de caracteres nacional (utilizado por los
NCLOB
datosNVARCHAR2
,NCHAR
,NCLOB
).
Como se ve aquí :
Oracle recomienda usar Unicode para todas las implementaciones de sistemas nuevos.
Los juegos de caracteres nacionales solo pueden ser Unicode: UTF-8 o UTF-16. Entonces, elegir el mismo conjunto de caracteres para ambos sería redundante …
Mi consejo (dice que su solicitud está solo en inglés):
- Solicite que el juego de caracteres de su base de datos sea UTF-8.
- Solicite que su juego de caracteres nacional sea UTF-16.
Y aquí está mi consejo general para la definición de su esquema. Tabla por tabla, columna por columna (aquí tomo la muestra VARCHAR2
/ NVARCHAR2
):
- si su columna puede contener cualquier carácter en el mundo (como en la entrada del usuario ),
NVARCHAR2
enNVARCHAR2
. - si tiene control sobre lo que se va a almacenar (entonces en inglés),
VARCHAR2
.