Luis Esteban de Dios Núñez escribió: > Hola, > >> otros en otra. (ASCII es una codificación de 7 bits; no hay acentos ni >> ñ en ASCII. La codificación SQL_ASCII no es realmente ASCII, sino que > > El código ASCII estándar no ocupa 1 byte(8 bits), donde el código de: > > á es 160 > é es 130 > í es 161 > ó es 162 > ú es 163 > ñ es 164 y > el de la Ñ es 165?
Estás en un error -- esos caracteres no están en ASCII. Los valores que das son de una tabla de codificación que si mal no recuerdo es CP850 (o quizás CP437), que es una extensión de ASCII definido por Microsoft o IBM, en el cual se usó el octavo bit para definir caracteres especiales. Latin1 es lo mismo: una extensión de ASCII que ocupa el octavo bit. La diferencia es que en Latin1 la tabla para los caracteres con el octavo bit encendido es distinta a la de CP850. En latin1 (fuente: es.wikipedia.org) Oct Dec Hex Carac Descripción ------------------------------------------------------------------ 301 0193 C1 Á A MAYÚSCULA CON ACENTO AGUDO 311 0201 C9 É E MAYÚSCULA CON ACENTO AGUDO 315 0205 CD Í I MAYÚSCULA CON ACENTO AGUDO 323 0211 D3 Ó O MAYÚSCULA CON ACENTO AGUDO 332 0218 DA Ú U MAYÚSCULA CON ACENTO AGUDO 341 0225 E1 á A MINÚSCULA CON ACENTO AGUDO 351 0233 E9 é E MINÚSCULA CON ACENTO AGUDO 355 0237 ED í I MINÚSCULA CON ACENTO AGUDO 363 0243 F3 ó O MINÚSCULA CON ACENTO AGUDO Como ves, los valores son distintos de los que citaste. Esto es lo que dice la wikipedia sobre CP437: IBM PC or MS-DOS code page 437, often abbreviated CP437 and also known as, DOS-US, OEM-US or sometimes misleadingly referred to as the OEM font, High ASCII or Extended ASCII,[1][2] is the original character set of the IBM PC, circa 1981. In a more strict sense, this character set was not born as a real code page (in its present sense) but being merely the graphical glyph repertoire available in the ROM of the IBM Monochrome Display Adapter (MDA) and Color Graphics Adapter (CGA) video output cards of the original IBM PC; that is, it was implemented on hardware. UTF8 es una extensión distinta que utiliza el octavo bit para señalar que viene una secuencia de bytes especial (de más de un byte) que codifica un carácter que no está en ASCII. A su vez, UTF16 es un conjunto de caracteres completamente diferente en el cual todos los caracteres (incluso los que están en ASCII) son representados por un par de bytes (o más de un par, en el caso de los caracteres que no cupieron en la primera definición de UTF16 hace varios años). -- Alvaro Herrera http://www.advogato.org/person/alvherre "Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio) -- TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán