Entre las características de internacionalización del Controlador Microsoft JDBC para SQL Server se incluyen las siguientes:
Compatibilidad con el trabajo en los mismos idiomas que SQL Server.
Compatibilidad con las conversiones de idioma de Java para datos de SQL Server en los que el idioma sea importante.
Compatibilidad con idiomas internacionales, independientemente del sistema operativo.
Tratamiento de los datos de caracteres
Los datos de caracteres en Java se tratan de forma predeterminada como Unicode, el objeto String de Java representa datos de caracteres Unicode. En el controlador JDBC, la única excepción a esta regla son los métodos establecedor y captador de flujos ASCII, que son casos especiales porque usan flujos de bytes con la presunción implícita de páginas de códigos únicas conocidas (ASCII).
Además, el controlador JDBC proporciona la propiedad de cadena de conexión sendStringParametersAsUnicode. Esta propiedad se puede usar para especificar que los parámetros preparados para los datos de caracteres se envíen como ASCII o juego de caracteres multibyte (MBCS) en lugar de Unicode. Para obtener más información acerca de la propiedad de conexión sendStringParametersAsUnicode, vea Establecer las propiedades de conexión.
Conversiones entrantes en el controlador
Los datos de texto Unicode que provengan del servidor no necesitan conversión. Se pasan directamente como Unicode. Los datos que no sean Unicode y provengan del servidor se convierten de una página de códigos de datos, en el nivel de la base de datos o de columna, a Unicode. El controlador JDBC emplea las rutinas de conversión de la Máquina Virtual Java (JVM) para realizar estas conversiones. Estas conversiones se realizan en todos los métodos establecedores de flujos String y Character.
Si la JVM no posee la compatibilidad adecuada de la página de códigos para los datos de la base de datos, el controlador JDBC lanza la excepción "la página de códigos XXX no es compatible con el entorno Java". Para solucionar este problema, debería instalar la compatibilidad completa con caracteres internacionales necesaria para esa JVM. Como ejemplo, vea la documentación relativa a las codificaciones compatibles (Supported Encodings) en el sitio web de Sun Microsystems.
Conversiones salientes del controlador
Los datos de caracteres que vayan desde el controlador hasta el servidor pueden ser ASCII o Unicode. Por ejemplo, los nuevos métodos de caracteres nacionales de JDBC 4.0, como los métodos setNString, setNCharacterStream y setNClob de las clases SQLServerPreparedStatement y SQLServerCallableStatement, envían siempre sus valores de parámetro al servidor de Unicode.
Por ejemplo, los nuevos métodos de caracteres nacionales de JDBC 4.0, como los métodos setString, setCharacterStream y setClob de las clases SQLServerPreparedStatement y SQLServerCallableStatement, envían siempre sus valores de parámetro al servidor de Unicode solamente cuando la propiedad sendStringParametersAsUnicode está configurada en "true", que es el valor predeterminado.
Parámetros que no son Unicode
Para un rendimiento óptimo con el tipo de parámetros CHAR, VARCHAR o LONGVARCHAR que no son Unicode, configure la propiedad de cadena de conexión sendStringParametersAsUnicode en "false" y use métodos de caracteres que no sean nacionales.
Problemas de formato
Para fecha, hora y divisas, el formato con datos localizados se aplica en el nivel de lenguaje Java empleando el objeto Locale y los diversos métodos de formato para los tipos de datos Date, Calendar y Number. En el caso excepcional en el que el controlador JDBC debe pasar datos para los que el idioma sea importante en un formato localizado, se utiliza el formateador correspondiente con la configuración regional predeterminada de la JVM.
Compatibilidad con intercalación
El controlador JDBC 3.0 admite todas las intercalaciones compatibles con SQL Server 2000 y SQL Server 2005, así las nuevas intercalaciones o nuevas versiones de los nombres de intercalación de Windows que se incluyeron en SQL Server 2008.
Para obtener más información acerca de las intercalaciones, vea Compatibilidad con la intercalación y Unicode y Nombre de intercalación de Windows (Transact-SQL) en los Libros en pantalla de SQL Server.