Texto Con Caracter Unicode Escrito De Forma Expllicita.


Subject: Texto Con Caracter Unicode Escrito De Forma Expllicita.
Hola a todos.
Alguien sabe como reemplazar los textos que incluyen la definicion de un caracter unicode, por ejemplo 180\U+00B0 para que quede el caracter, por ejejemplo 180°??
Estoy buscando la forma general, ya que por supuesto que Replace funcionaria para el caso particular.
Por ejemplo:
Unicode Character “°” (U+00B0)
s = Replace(s, "\\U+00B0", "°")


SAludos.

Profile PM  
Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
Espero te sirva la siguiente línea

Print "180" & String.Chr(&h00B0&)

Aunque pienso que debe haber ya alguna función en algún componente que actúe en toda la cadena.

Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
razaAztk escribió:  
...Aunque pienso que debe haber ya alguna función en algún componente que actúe en toda la cadena.

Si, eso es lo que intento saber.
Saludos.

Profile PM  
Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
tincho escribió:  
Si, eso es lo que intento saber.


Perdona, la solución de razaAztk no te parece bien?
No comprendo, scusami !

Profile PM  
Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
vuott escribió:  
tincho escribió:  
Si, eso es lo que intento saber.

Perdona, la solución de razaAztk no te parece bien?
No comprendo, scusami !

Si Vuott, la propuesta de convertir como dice razaAztk me parece bien, de hecho es mejor que la que uso yo ahora, que es similar.
El problema que no resuelvo de momento es detectar cuando aparece un caracter de estos. Pero no reviste complicaciones lo haré con algo de:
InStr("\U+")

Pero intento saber si existe en gambas algo mas general como por ejemplo.
s = Conv$(s, "ISO-8859-1", "UTF-8")

Que funciona para algunos caracteres del estilo "\D1" pero no para los del estilo unicode, es decir "\U+AAAA"
Saludos.

Profile PM  
Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
razaAztk escribió:  
Espero te sirva la siguiente línea
Print "180" & String.Chr(&h00B0&)
Aunque pienso que debe haber ya alguna función en algún componente que actúe en toda la cadena.

Bueno, en base a tu propuesta hice esta función general que pondre en la lista de agregados a String
'' This function replace unicode like \U+0023 by # the character

Public Function Flat(s As String) As String

Dim k As Integer = 1
Dim q As Integer
Dim r As Integer

Dim uni As String
Dim stx As New String[]
Dim u As String
Dim rep As String
Dim i As Integer

Repeat
q = InStr(s, "\\U+", k)
If q > 0 Then
Inc r
uni = String.Mid(s, q, 7)
stx.Add(uni)
k = q + String.Len("\\U+")
Endif
Until InStr(s, "\\U+", k) = 0 Or k > String.Len(s)

For Each u In stx
i = Val("&h" & String.Mid(u, 4, 4) & "&")
rep = String.Chr(i)
s = Replace(s, u, rep)
Next

Return s

End

Gracias razaAztk
Saludos.

Profile PM  
Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
Bueno, aquí está mi implementación:

USE "gb.pcre"

Public Function decodeUnicode(s As String) As String

Dim rMatch As New RegExp
Dim tmp As String
Dim sx As String

rMatch.Compile("\\\\U\\+[0-9a-fA-F]{4}", RegExp.MultiLine)
rMatch.Exec(s)

tmp = s
sx = s
do while rMatch.text <> ""
sx = Replace$(sx, rMatch.text, String.Chr(Val(Replace$(rMatch.text, "\\U+", "&h"))))
tmp = mid(tmp, rMatch.offset + 2)
rMatch.Exec(tmp)
loop

Return sx
End



Dim xString As String

xString = "The slyly jumped over \\U+00FFAAA 0xFFFF the 180\\U+00B0 lazy dog \\U+00A9"
Print xString
Print decodeUnicode(xString) 'The slyly jumped over ÿAAA 0xFFFF the 180° lazy dog ©


Subject: Re: Texto Con Caracter Unicode Escrito De Forma Expllicita.
razaAztk escribió:  
Bueno, aquí está mi implementación:...

Si señor, muy bien, seguro es mas rápido con gb.pcre
Saludos.

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1184s (PHP: -20% SQL: 120%)
SQL queries: 23 - Debug Off - GZIP Enabled