Sunday, October 2, 2016

Considere El Uso De The Force Binary Collation Option

Las expresiones de valor se utilizan en una variedad de contextos, como en la lista de objetivos del comando SELECT, como nuevos valores de columna en INSERT o UPDATE. o en condiciones de búsqueda en un número de comandos. El resultado de una expresión de valor a veces se llama un escalar. para distinguirlo de el resultado de una expresión de tabla (que es una tabla). Las expresiones de valor son, por tanto, también llamados expresiones escalares (o incluso simplemente expresiones). La sintaxis de la expresión permite el cálculo de los valores de las piezas primitivos utilizando la aritmética, lógica, juego, y otras operaciones. Una expresión de valor es uno de los siguientes: Un valor constante o literal hacer referencia a una columna de una referencia parámetro posicional, en el cuerpo de una definición de función o una declaración preparada Una expresión subíndice Una expresión de selección de campos Una invocación operador de una función de llamada Una expresión agregada una ventana función de llamada una expresión de colación una subconsulta escalar una matriz constructor un constructor fila Otra expresión de valor entre paréntesis (utilizado para subexpresiones grupo y anular la precedencia) Además de esta lista, hay una serie de construcciones que se puede clasificar como una expresión, pero no lo hacen seguir reglas generales de sintaxis. Estos por lo general tienen la semántica de una función u operador y se explican en el lugar apropiado en el capítulo 9. Un ejemplo es la cláusula IS NULL. Ya hemos hablado de las constantes en la Sección 4.1.2. Las secciones siguientes se describen las opciones restantes. Una columna puede ser referenciado en la forma: la correlación es el nombre de una tabla (posiblemente calificado con un nombre de esquema), o un alias para una tabla definida por medio de una cláusula FROM. El nombre de correlación y el punto de separación pueden omitirse si el nombre de la columna es única entre todas las tablas que se utilizan en la consulta actual. (Véase también el capítulo 7). Una referencia de parámetro posicional se usa para indicar un valor que se suministra externamente a una instrucción SQL. Los parámetros se utilizan en las definiciones de funciones SQL y en las consultas preparadas. Algunas bibliotecas de cliente también son compatibles con la especificación de valores de datos por separado de la cadena de comandos SQL, en el que se utilizan parámetros del caso para referirse a los valores de datos fuera de línea. La forma de una referencia de parámetro es: Por ejemplo, considere la definición de una función, dept. como: Aquí las referencias 1 el valor del primer argumento de la función cada vez que se invoca la función. Si una expresión se obtiene un valor de un tipo de matriz, a continuación, un elemento específico del valor de la matriz se puede extraer por escrito o múltiples elementos adyacentes (una rodaja de arreglo) puede ser extraído por escrito (Aquí, los soportes están destinados a aparecer literalmente.) cada subíndice es en sí misma una expresión, que debe dar un valor entero. En general, la expresión de matriz debe estar entre paréntesis, pero los paréntesis puede omitirse cuando la expresión que se va subíndice es sólo una referencia de columna o parámetro posicional. Además, varios subíndices se pueden concatenar cuando la matriz original es multidimensional. Por ejemplo: Los paréntesis son necesarios en el último ejemplo. Véase la Sección 8.15 para más acerca de las matrices. Si una expresión se obtiene un valor de un tipo compuesto (tipo de fila), entonces un campo específico de la fila puede extraerse mediante la escritura en general la expresión fila debe ser entre paréntesis, pero los paréntesis puede omitirse cuando la expresión que será seleccionada de es sólo una referencia de tabla o parámetro posicional. Por ejemplo: (Por lo tanto, una referencia de columna calificado en realidad es sólo un caso especial de la sintaxis de selección de campos.) Un caso especial importante es la extracción de un campo de una columna de tabla que es de tipo compuesto: Los paréntesis son necesarios aquí para mostrar que compositecol es un nombre de columna no es un nombre de tabla, o que mitabla no es un nombre de tabla un nombre de esquema en el segundo caso. En una lista de selección (ver sección 7.3), puede solicitar todos los campos de un valor compuesto por la escritura. : Hay tres posibles sintaxis para una invocación del operador: Uso de Unicode en aplicaciones de Visual FoxPro web y de escritorio Unicode proporciona un mecanismo de visualización universal para cuerdas en una aplicación. Un problema común para las solicitudes es para mostrar todos los diferentes idiomas y caracteres asociados a ellos con facilidad y de forma coherente. Unicode proporciona un único conjunto de caracteres que se pueden visualizar todos los idiomas con un mecanismo de representación de caracteres única que facilita las complejidades de visualización muy diferentes idiomas como el chino, coreano, ruso y occidentales como el Inglés en una sola página de formulario o página Web. Por desgracia, Visual FoxPro doesn t tiene soporte Unicode nativo, lo que significa que tiene que hacer un poco de trabajo extra y entender cómo integrar cadenas de varios conjuntos de caracteres y cómo trabajar con datos Unicode en Visual FoxPro. En este artículo, describo cómo se puede utilizar Unicode con su aplicación en el contexto de soportar múltiples idiomas simultáneamente. Aunque Visual FoxPro t Unicode puede mostrar directamente, se puede mostrar diferente conjunto de caracteres a través del uso de páginas de códigos de asignación de caracteres específico para la localidad - VFP, que soporta fácilmente. Esto funciona bien para aplicaciones que muestran contenido únicamente de un solo idioma / locale. Sin embargo, este enfoque tiene serias limitaciones si necesita mostrar las cadenas de varios idiomas al mismo tiempo. Comienzo con una visión general de los temas y la forma de trabajar con Unicode en general, a continuación, le mostrará cómo recuperar y actualizar datos Unicode, y, finalmente, le mostrará cómo obtener el contenido Unicode para mostrar tanto en sus interfaces web y de los usuarios de escritorio. Tenga en cuenta que la mayor parte de las soluciones que se ofrecen en este artículo se basan en un par de nuevas características Visual FoxPro 9.0, por lo que VFP 9 o posterior es muy recomendable. El nativo de acceso a datos VFP y ejemplos de SQL de paso a través pueden trabajar en VFP 8 o posterior. Hace poco estaba involucrado en un proyecto en el que uno de los requisitos era crear contenido que aparece en una variedad de idiomas, incluyendo lenguas Asia y Europa oriental, a partir de datos Unicode almacenados en una base de datos SQL Server. Mi problema particular consistió en leer el aporte de diversos idiomas, guardar los datos en SQL Server y, a continuación se presentan y la captura de los datos de múltiples idiomas en una sola página web. Visual FoxPro doesn t soporte Unicode directamente para tratar con conjuntos de caracteres extendidos como el cirílico o cualquiera de los conjuntos de Asia es bastante dura y un tanto confuso. Doesn t ayuda que allí isn t mucha documentación sobre este tema. En este artículo me ll describir mis descubrimientos de trabajar con datos Unicode en Visual FoxPro y la forma en que finalmente fue capaz de hacer frente a este problema con varias soluciones. Aunque el enfoque de este proyecto en particular fue con los datos Web también Discutiremos brevemente Unicode en el interior de la interfaz de usuario FoxPro hacia el final del artículo. ¿Qué es el problema de Visual FoxPro utiliza caracteres ANSI, que es un mecanismo no visualización de caracteres Unicode. En su lugar, utiliza un n-byte (conocido confusamente como multi-byte, pero significa 1 o 2 bytes) la representación de caracteres. juegos de caracteres de varios bytes se basan en las páginas de códigos que representan un conjunto de caracteres específica asignada a una o más lenguas. Por ejemplo, CodePage 1252 de Windows occidental se asigna a la mayoría de los idiomas europeos occidentales y en inglés. 1251 mapas para idiomas de Europa del Este, como Polonia. y así. Este mecanismo de pre-Unicode era común en los días de DOS y Win16 y todavía está en uso para aplicaciones que no son Unicode que se ejecutan en Windows de 32 bits en la actualidad. El problema de este mecanismo es que este esquema de páginas de código hace que sea muy difícil para visualizar el contenido de múltiples páginas de códigos al mismo tiempo. Así que si desea mostrar texto en ruso y chino en la misma página que es imposible de hacer porque sólo se puede utilizar una página de códigos a la vez. Cuando Win32 dio la vuelta, Microsoft empujó duro para una implementación completa de Unicode y Windows 95 y posteriores se basan principalmente en caracteres Unicode. En el momento que esto causó un gran revuelo porque la mayoría de las herramientas de desarrollo del día no son compatibles con Unicode todavía. Unicode en Microsoft realmente dejase t entra en su plenitud hasta que Visual Basic y COM se creó en la década de 1990 s. interfaz de componente COM Microsoft s se basó enteramente en un sistema de cadenas basada en Unicode que era totalmente transparente para el desarrollador. Visual FoxPro, sin embargo, se quedó con las presentaciones de caracteres multi-byte internos y, a día de hoy, sólo tiene un apoyo mínimo para Unicode. La extensión de su funcionalidad Unicode es básicamente un par de funciones que le permiten convertir las cadenas (de una manera bastante limitada) entre multi-byte y Unicode, así como un par de funciones de cadena que pueden operar en cadenas Unicode. Sin embargo, VFP no tiene manera de mostrar realmente cadenas Unicode utilizando sus propios controles. Visual FoxPro puede, sin embargo, consumir datos Unicode en cierta medida, mediante la realización de traducciones automáticas de páginas de códigos. Por defecto Visual FoxPro utiliza una página de códigos que coincide con la configuración del sistema. Cada vez que cualquier tipo de conversión tiene que tener lugar cuando la lectura de datos Unicode de una fuente de datos como SQL Server o el acceso a un objeto COM de Visual FoxPro convierte automáticamente la cadena de Unicode en la página de códigos apropiada, y viceversa. Esto funciona bien siempre y cuando los datos que estás trabajando con mapas de forma única a esta página de códigos. Así que si trabajo con inglés / datos occidentales durante todo el día nunca voy a tener un problema con los datos Unicode. Eso es hasta que empezar a tratar con conjuntos de caracteres extendidos que don t coincida con el sistema actual s página de códigos. Usted tiene cierto control sobre este proceso mediante la creación de página de código VFP s, y el uso de SYS (3101) - nuevo en VFP 9 - que le permite configurar la forma en Visual FoxPro traduce cadenas de objetos COM. También puede convertir cadenas directamente hacia y desde Unicode utilizando StrConv () con opciones nConversionSetting 5 y 6, respectivamente. Estas funciones permiten que usted tome una cadena FoxPro y convertirlo en Unicode y hacia atrás utilizando un parámetro de página de códigos opcional (o identificador de configuración regional) para especificar cómo se produce la traducción. Todo esto significa que si está ejecutando Windows en una página de códigos de Corea y se recuperan datos coreanos de la base de datos VFP puede hacer frente a estos datos muy bien tanto en formato de cadena y en la interfaz de usuario. Sin embargo, si está ejecutando en la versión en Inglés de Windows y está tratando de leer esos mismos datos coreana se encuentra que VFP no puede leer o visualizar estos datos (te dan un montón de signos de interrogación). Mientras que VFP se puede forzar para convertir cadenas que utilizan páginas de códigos específicos (con StrConv () o SYS (3101) por ejemplo) la interfaz de usuario FoxPro sólo puede ocuparse de una sola página de códigos en el momento. Puede agregar un idioma de conversión de múltiples bytes secundaria a su sistema en la configuración regional del panel de control avanzado como se muestra en la Figura 1. Por desgracia, este ajuste es un dolor para establecer lo que tiene que reiniciar después de cambiarlo. Figura 1: Configuración por defecto de Unicode a la lengua de traducción multi-byte. El idioma que elija aquí será el conjunto de caracteres por defecto extendido VFP s usado para mostrar texto. Con los ajustes realizados Me gustaría ser capaz de hacer las conversiones para el coreano y me gustaría ser capaz de utilizar y cadenas de presentación en formato de Corea en mis aplicaciones VFP. Pero todavía wouldn t ser capaz de hacer lo mismo para el chino o el ruso, al mismo tiempo. En otras palabras, la opción anterior sólo funciona para un solo idioma, lo que podría estar bien para una aplicación que tiene que trabajar sólo con un único idioma a la vez. Haciendo conversiones de esta manera también es muy limitada, ya que su aplicación tiene que ser muy conscientes de la página de código que va a convertir desde y hacia en Visual FoxPro sin esta información Unicode conversiones de juegos de caracteres superiores que son muy diferentes de la página de códigos predeterminada máquina dará lugar a destruidos o modificados personajes una pérdida de datos. Es muy probable que si convierte los caracteres Unicode de una página de códigos no predeterminada, usted no será capaz de convertir estas cadenas en una cadena de Visual FoxPro útil en el entorno de VFP. Si su equipo está configurado para la página de códigos 1252, y leer una cadena Unicode de Corea y convertirlo en una cadena FoxPro con StrConv () se encuentra que se obtiene una cadena completa de. Los. carácter indica que VFP dejase t sabe cómo convertir este personaje en algo que se puede representar en la página de códigos actual. Y esto es realmente el quid de la cuestión con el soporte Unicode VFP s. Se puede aplicar una CodePage o Local para la conversión en cuyo caso Visual FoxPro realmente generar la secuencia de carácter específico para la localidad adecuado para usted. Pruebe lo siguiente: El texto coreano como binario Unicode lcBinStr StrConv (Convertir a UTF-8 lcUTF8Str StrConv (lcBinStr, 10) Hacer cursor derecho libre Cuando se utiliza el CursorAdapter dividir su trabajo entre la CA y los objetos ADO COM Observe que el CursorAdapter. propiedad s página de códigos se establece en 65001, lo que garantiza que VFP se comunica con ADO con UTF-8 para las cuerdas. el comando SQL se establece en el CursorAdapter en lugar del objeto Command de ADO y el CA controla el comando análisis. Esto hace que sea posible uSO los pases de SQL a través de la sintaxis tipo con ADO, como el CA se encarga de la traducción de la sintaxis de parámetros SPT a los objetos de parámetros ADO apropiadas. Si te gusta la CursorAdapter, se puede proporcionar con soporte de ingeniería completa de los datos. Cuando se configura con INSERT / actualizar / Eliminar / SELECT comandos de CA puede manejar toda la gama de conectividad remota para la actualización de un cursor y ya que utiliza ADO y COM toda su gestión Unicode se toma el cuidado de usted. Si eres como yo, sin embargo, es posible que el CursorAdapter doesn t encajan con su arquitectura de objetos de negocio existente. Prefiero tratar con SQL más directamente, en lugar de trabajar con el tipo de interfaz de visualización remota preconfigurado que el CursorAdapter ofrece. Para ello necesito para disparar comandos que no son consulta (insertar / actualizar / borrar / procedimientos almacenados) directamente contra ADO. Aquí hay un ejemplo de cómo hacer esto. A continuación se muestra la sintaxis prima para realizar un INSERT a ADO con Unicode datos que es codificación UTF-8: Un poco de texto en ruso - debe convertir a UTF-8 para Insertar lcDescriptUtf8 StrConv (lDescriptBin, 10) oCommand. Execute (lnAffected ,, 128) sin conjunto de resultados El proceso debe ser familiar para usted por ahora. Cualquier cadena que desea pasar a SQL Server debe ser codificación UTF-8. El texto ruso arriba empieza en binario (porque yo t puedo pegarlo en el texto), se convierte en UTF-8 y luego asignado a un objeto de parámetro s propiedad Value en ADO. ADO se establece en SYS (3101,65001) para todos los parámetros se pasan en como UTF-8 e internamente convierte a Unicode. Si usted mira de SQL se verá que de hecho ADO envía cadenas en formato Unicode en el servidor cuando se ejecuta la instrucción INSERT. La misma lógica se aplica para los comandos UPDATE o llamadas a procedimientos almacenados que requieren parámetros para ser aprobado. Tenga en cuenta que con ADO nativa tendrá que asignar explícitamente parámetros con el objeto ADODB. Parameter más que el paso de SQL familiar a través de la sintaxis. Para hacer el traspaso de parámetros un poco más fácil el código de ejemplo que acompaña a este artículo proporciona un método AdoAddParameter () que permite que pase sólo lo esencial (de valor y nombre). Hacer la vida más fácil con contenedores de clase SQL Server Para sintaxis SQL sin formato más consistente, yo he proporcionado un par de clases y wwSQL wwADOSQL que proporcionan una implementación SQL de bajo nivel que funciona tanto con ODBC y ADO transparente. La clase wwSQL fue construido originalmente como una envoltura muy fina alrededor de SQL pase a través y recientemente he añadido wwADOSql con la misma interfaz para soportar la funcionalidad Unicode. Los métodos principales de esta clase son execute (), ExecuteNonQuery () y ExecuteStoredProcedure () más una aplicación parámetro común que no depende de variables privadas (es decir. Que puede pasar por las aplicaciones distribuidas). La clase también gestiona los parámetros de análisis de SQL de paso a través de la sintaxis para todos, pero Procedimiento almacenado llama con parámetros OUT, que deben ser implementadas de manera explícita el uso de ExecuteStoredProcedure (). Esta clase es muy útil si se siente más cómodo con un pase de SQL a través de la interfaz de SQL directa estilo. Con esta clase de acceso de SQL y trabajar con ADO cadenas UTF-8 se vuelve tan simple como: local o como wwADOSql o CreateObject () o. Conectar (o CreateObject () o. Connect () páginas de códigos, el conjunto de caracteres, codificaciones, locales Oh La terminología de la globalización no es el más fácil de acostumbrarse, ya que parece que muchos de los términos tiene algunas funciones de superposición. Juegos de caracteres describen un conjunto de caracteres físicos de una interfaz de tipo específico. Por ejemplo, hay varios juegos de caracteres latinos, hay juegos de caracteres cirílicos y diversos juegos de caracteres asiáticos como Corea. el juego de caracteres define los personajes reales que están disponibles en una cadena mediante el carácter conjunto. páginas de códigos son los mapas de una secuencia específica de caracteres sábana de un conjunto de caracteres. Así que, aunque CodePage de Windows 1252 y 1251 tienen muchos caracteres comunes, la misma charcter puede tener una posición diferente dentro del conjunto de caracteres (pensar en él como un ASC diferente () valor). Codepages son, básicamente, no se utilizan para Unicode, pero son necesarios para las representaciones de caracteres multi-byte para asignar caracteres en un espacio limitado. Locales describen un conjunto de características de localización que determinan cómo un mapeo lenguaje específico es gestionado por el sistema . Locales don t acaba de hacer frente a cuestiones como la fuente de información conjuntos de caracteres y páginas de códigos, pero también incluyen información de cómo se muestran las fechas y los valores de los números, cómo se utilizan los símbolos de moneda y si el idioma utiliza izquierda a derecha o de derecha a desplazarse hacia la izquierda. Locales incluyen información. Cada entorno se asigna a una combinación específica de idioma idioma secundario. Por ejemplo, el identificador de cadena de configuración regional de América es en-us, mientras que el de Inglaterra es en-gb. En VFP las únicas cosas que realmente importa son las páginas de códigos y locales a pesar de que don t siquiera necesita saber acerca de los entornos nacionales. VFP utiliza páginas de códigos como su principal mecanismo para realizar las conversiones automáticas de Unicode a la página de códigos actual. Unicode en la plataforma Microsoft s se basa por completo Unicode. El tipo de datos de cadena en una cadena Unicode es y no hay manera de crear una cadena de cualquier otra manera, al menos no como tipo String. Todo el entorno se basa Unicode y si usted escribe aplicaciones web o aplicaciones de Windows Forms es una aplicación automáticamente activados para Unicode y puede manejar la pantalla de cualquier conjunto de caracteres que S instalado en su máquina. Por ejemplo, en una página web sólo tiene que leer Request. Form () capturar el valor como una cadena Unicode y luego actualizar la base de la cadena pasa por el sistema completo como Unicode. Simplemente funciona allí s nada especial que tiene que hacer. Para compartir los datos con entornos que no son Unicode o para escribir datos a archivos o arroyos. NET tiene la clase de codificación. La clase de codificación proporciona codificadores especiales como UTF-8, UTF-7, Unicode, los codificadores de páginas comunes de códigos de Windows y una variedad de ISO definiciones de página de código. La clase de codificación permite la conversión de cadenas desde y bytes o secuencias de bytes a través de esta clase muy útil y necesaria con frecuencia. En comparación con los giros descritos en este artículo con Visual FoxPro, el soporte Unicode en es prácticamente transparente. Si usted necesita para construir aplicaciones multi-locale podría valer la pena considerar como una alternativa. Algoritmo de clasificación Unicode Resumen Este informe es la especificación del algoritmo de clasificación Unicode (UCA), que detalla cómo comparar dos cadenas Unicode sin dejar de ser conformes a los requisitos de la Norma Unicode. La UCA también suministra el defecto de clasificación Unicode Elemento Tabla (Ducet) como los datos que especifican el orden de clasificación por defecto para todos los caracteres Unicode. Posición Este documento ha sido revisado por los miembros Unicode y otras partes interesadas, y ha sido aprobado para su publicación por el Consorcio Unicode. Este es un documento estable y puede ser utilizado como material de referencia o citado como referencia normativa por otras especificaciones. Una Norma Técnica Unicode (UTS) es una especificación independiente. La conformidad con el estándar Unicode no implica la conformidad con las UTS. Por favor enviar correcciones y otras observaciones con la forma de presentación de informes en línea Testimonios. Información relacionada que es útil en la comprensión de este documento se encuentra en las referencias. Para obtener la última versión del estándar Unicode vea Unicode. Para obtener una lista de los actuales Informes Técnicos Unicode véanse los informes. Para obtener más información acerca de las versiones del estándar Unicode, consulte Versiones. Contenido 1 Introducción colación es el término general para el proceso y la función de determinar el orden de clasificación de cadenas de caracteres. Es una función clave en los sistemas informáticos cada vez que se presenta una lista de cadenas para los usuarios, es probable que desee en una forma ordenada para que fácil y fiable pueden encontrar cadenas individuales. Por lo tanto, es ampliamente utilizado en las interfaces de usuario. También es crucial para bases de datos, tanto en la ordenación de registros y en la selección de conjuntos de registros con campos dentro de límites dados. Intercalación varía según la lengua y la cultura: alemanes, franceses y suecos ordenar los mismos caracteres de manera diferente. También puede variar según la aplicación específica: incluso dentro de la misma lengua, diccionarios puede ordenar de manera diferente que los directorios telefónicos o índices de libros. Para los scripts no alfabéticos, como ideogramas de Asia oriental, el cotejo puede ser fonética o en base a la apariencia del personaje. Intercalación también puede personalizarse según las preferencias del usuario, tales como ignorar puntuacion o no, poner en mayúscula antes de minúsculas (o viceversa), y así sucesivamente. Lingüísticamente correcta búsqueda tiene que utilizar los mismos mecanismos: al igual que tradicionalmente especie como si fueran la misma letra base en sueco, una búsqueda de manipulación debería recoger las palabras con cualquiera de ellos. implementaciones de intercalación deben hacer frente a las complejas convenciones lingüísticas para ordenar texto en idiomas específicos, y proveer para las personalizaciones comunes basados ​​en las preferencias del usuario. Por otra parte, los algoritmos que permiten un buen rendimiento son cruciales para cualquier mecanismo de intercalación para ser aceptado en el mercado. La Tabla 1 muestra algunos ejemplos de casos en un orden diferente por el lenguaje, el uso o la otra personalización. Tabla 1. Ejemplo Diferencias Idiomas varían en cuanto a qué tipos de comparaciones que utilizan (y en qué orden se van a aplicar), y en lo que constituye un elemento fundamental para la clasificación. Por ejemplo, golosinas suecas como una carta individual, clasificación después de z en el alfabeto alemán, sin embargo, ordena que sea ae similar o igual que otras formas acentuadas de una. siguiendo así a. En Eslovaquia, el tipo dígrafo ch como si se tratara de una carta por separado después h. Ejemplos de otras lenguas y escrituras abundan. Idiomas cuyos sistemas de escritura usar mayúsculas y minúsculas suelen ignorar las diferencias en el caso, a menos que no hay otras diferencias en el texto. Es importante asegurarse de que el cotejo cumpla con las expectativas del usuario en todo lo posible. Por ejemplo, en la mayoría de las lenguas latinas, las clases como una variante acentuada de o, lo que significa que la mayoría de los usuarios podrían esperar junto a o. Sin embargo, algunos idiomas, como el noruego y danés, especie como un elemento único después de z. Ordenando por ejemplo, en una selección de base de datos que el usuario no puede darse cuenta de lo que los registros están desaparecidos. Vea la Sección 1.5, otras aplicaciones de intercalación. Con aplicaciones Unicode ampliamente desplegados, los datos multilingüe es la regla, no la excepción. Por otra parte, cada vez es más común ver a los usuarios con muchas expectativas diferentes de clasificación con el acceso a los datos. Por ejemplo, una compañía francesa con clientes de toda Europa incluirá los nombres de muchos idiomas diferentes. Si un empleado sueco en esta empresa francesa accede a los datos desde una ubicación compañía sueca, los nombres de los clientes tienen que aparecer en el orden en que se reúne este empleado a pesar de que habrá muchas diferentes caracteres acentuados que normalmente no aparecen en texto en lengua sueca. Para los scripts y caracteres que no se utilizan en un idioma determinado, no pueden existir reglas explícitas. Por ejemplo, sueco y francés especificar con claridad, reglas distintas para la clasificación (ya sea después de z o como un carácter acentuado con una diferencia secundaria a partir de a), pero no se define el orden de los caracteres tales como,,,,, o. 1.1 Comparación de niveles múltiples Para hacer frente a las complejidades de la clasificación sensible al idioma, se emplea un algoritmo de comparación de niveles múltiples. En la comparación de dos palabras, la característica más importante es la identidad de las cartas base, por ejemplo, la diferencia entre una A y una B. diferencias de acento suelen ignorar, si las letras básicas difieren. Las diferencias de caso (en mayúsculas en comparación con minúscula), suelen ignorar, si las letras básicas o sus acentos difieren. Tratamiento de puntuacion varía. En algunas situaciones un carácter puntuacion es tratado como una carta de base. En otras situaciones, debe ser ignorado si hay diferencias de base, de acento, o de casos. También puede haber un final, nivel de desempate (llamado un nivel idéntico), con lo que si no hay otras diferencias en absoluto en la cadena, se utiliza la (normalizado) orden de punto de código. Tabla 2. Comparación de rol papel Niveles Los ejemplos de la Tabla 2 están en Inglés la descripción de los niveles pueden corresponder a diferentes características del sistema de escritura en otros idiomas. En cada ejemplo, para los niveles L2 hasta L, las diferencias en ese nivel (indicado por los caracteres subrayados) están inundados por las diferencias de nivel más fuerte (como en el texto azul). Por ejemplo, el ejemplo muestra que L2 diferencia entre un O y un acento está inundado por una diferencia de L1 (la presencia o ausencia de un s). En el último ejemplo, el formato representa un personaje, que por lo demás completamente ignorarse. El nivel primario (L1) es para la clasificación básica del texto, y los niveles no primarios (L2..Ln) son para ajustar los pesos de cadena para otros elementos lingüísticos en el sistema de escritura que son importantes para los usuarios en el pedido, pero menos importante que el orden de la clasificación básica. En la práctica, puede ser necesario un menor número de niveles, dependiendo de las preferencias del usuario o personalizaciones. 1.1.1 Colación pedido y código gráfico Solicitar Muchas personas esperan que los personajes de su lengua para estar en el orden de las listas de código Unicode. Debido a colación varía según el idioma y no sólo por el guión, no es posible disponer la codificación de los caracteres de manera que la simple comparación cadena binaria produce el orden de clasificación deseada para todos los idiomas. Debido a la clasificación de niveles múltiples es un requisito, ni siquiera es posible disponer la codificación de los caracteres de manera que la simple comparación cadena binaria produce el orden de clasificación deseado para cualquier idioma en particular. Se requieren tablas de datos separados por el orden de clasificación correcta. Para obtener más información sobre tailorings para diferentes idiomas, consulte CLDR. El principio básico es que hay que recordar: La posición de los caracteres en las tablas de código Unicode no especifica su orden de clasificación. 1.2 Equivalencia Canonical Hay muchos casos en Unicode en el que dos secuencias de caracteres son canónicamente equivalentes: las secuencias representan esencialmente el mismo texto, pero con diferentes secuencias reales. Para obtener más información, consulte UAX15. Las secuencias que son canónicamente equivalente debe ordenar la misma. La Tabla 3 proporciona algunos ejemplos de secuencias canónicamente equivalentes. Por ejemplo, el signo angstrom se codificó para la compatibilidad, y es canónicamente equivalente a un anillo A. Esto último también es equivalente a la secuencia descompuesto de A más el carácter anillo de la combinación. El orden de ciertas marcas de combinación también es irrelevante en muchos casos, por lo que tales secuencias también debe ser ordenado de la misma, como se muestra en el segundo ejemplo. El tercer ejemplo muestra un carácter compuesto que se puede descomponer en cuatro formas diferentes, todos los cuales están canónicamente equivalente. Tabla 3. Canonical Equivalencia T 0075 Letra latina minúscula U, U 0323 COMBINACIÓN punto debajo, T 031B HORN COMBINACIÓN 1.3 Sensibilidad contextuales, no hay complicaciones adicionales en determinados idiomas, cuando la comparación es sensible al contexto y depende más de los caracteres individuales únicamente en comparación directamente contra uno de otro, como se muestra en la Tabla 4. El primer ejemplo de tal complicación consiste en contracciones. donde dos (o más) caracteres especie como si fueran una sola letra base. En la tabla a continuación, CH actúa como una sola letra C ordenados después. El segundo ejemplo consiste en expansiones. donde un solo carácter ordena como si se tratara de una secuencia de dos (o más) caracteres. En la tabla a continuación, un tipo de ataduras como si fuera la secuencia de O E. Ambos contracciones y expansiones se pueden combinar: es decir, dos (o más) caracteres puede ordenar como si fueran una secuencia diferente de dos (o más) caracteres. En el tercer ejemplo, para, una marca de longitud tipo japoneses con sólo una diferencia terciaria de la vocal de la sílaba anterior: como A después de KA y como I después de KI. Tabla 4. Sensibilidad al contexto H CZ Algunas lenguas tienen singularidades adicionales en la forma de una especie. Normalmente, todas las diferencias de clasificación se evalúan desde el principio hasta el final de la cadena. Si todas las letras básicas son las mismas, la primera diferencia de acento determina el orden final. En la fila 1 de la Tabla 5. La primera diferencia es el acento en la o. así que eso es lo que determina el orden. En algunos Diccionario francés ordenar tradiciones, sin embargo, es la última diferencia acento que determina el orden, como se muestra en la fila 2. Tabla 5. acento hacia atrás para pedidos normal Accent pedidos cote acento hacia atrás ct ct pedidos cote 1.4 Personalización En la práctica, existen, además, características de intercalación que los usuarios necesitan para controlar. Estos se expresan en las interfaces de usuario y, finalmente, en las API. Otras personalizaciones o preferencias del usuario son los siguientes: Idioma. Esta es la característica más importante, ya que es crucial que la intercalación coincide con las expectativas de los usuarios de la comunidad idioma de destino. Fuerza. Esto se refiere al número de niveles que se van a tener en cuenta en la comparación, y es otra característica importante. La mayoría de las veces se necesita una fuerza de tres niveles para la comparación de cadenas. En algunos casos, será necesario un mayor número de niveles, mientras que en otros se deseará menos niveles. Ordenando caso. Algunos autores diccionarios y cotejar mayúsculas antes de minúsculas mientras que otros utilizan la inversa, por lo que la preferencia debe ser adaptable. A veces el ordenamiento caso sea ordenada por el gobierno, como en Dinamarca. A menudo se trata simplemente de una personalización o la preferencia del usuario. Puntuación. Otra opción común es si tratar puntuacion (incluyendo espacios) como base de caracteres o tratar estos personajes, ya que sólo haciendo una diferencia de nivel 4. Definido por el usuario Reglas. Tales reglas proporcionan resultados específicos para las combinaciones dadas de letras. Por ejemplo, en un índice, un autor puede desear tener símbolos ordenados como si fueran explicadas por lo tanto. Tailorings fusionada. Una opción puede permitir la fusión de los conjuntos de reglas para diferentes idiomas. y así. .


No comments:

Post a Comment