L'encodage UTF8 chaîne de caractères ISO-8859-1 String (VB.NET)
J'ai besoin de les convertir en UTF8 chaîne de caractères ISO-8859-1 chaîne à l'aide de VB.NET.
Un exemple?
souligné textej'ai essayé latine fonction et ne s'exécute pas. - Je recevoir chaîne incorrecte.
Mon cas, c'est que j'ai besoin d'envoyer des SMS à l'aide de l'API.
Maintenant, j'ai ce code:
baseurl = "http://www.myweb.com/api/sendsms.php"
client = New WebClient
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
client.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
client.QueryString.Add("user", user)
client.QueryString.Add("password", pass)
client.QueryString.Add("alias", myAlias)
client.QueryString.Add("dest", mobile)
textoSms = Me.mmTexto.Text
textoSms = System.Web.HttpUtility.UrlEncode(textoSms)
client.QueryString.Add("message", textoSms)
data = client.OpenRead(baseurl)
reader = New StreamReader(data)
s = reader.ReadToEnd()
data.Close()
reader.Close()
Mais ne s'exécute pas...je reçois des messages erronés. Par exemple
si j'écris: mañana retourne maa ana
Si j'écris aigüa retourne aiga
aucun. Je n'ai pas de solution qui a bien fonctionné à 100%. si non je l'aurais marqué comme résolu...désolé...
Non, j'ai demandé, qu'avez-vous essayé? Cette "question" est juste d'avoir quelqu'un pour vous dire quoi faire, avec aucune preuve de recherche préalable.
Je ne comprends pas ce que vous avez dit .... seulement je sais que la question a été ouvert il y a 3 ans!
Je ne vois pas en quoi ce que j'ai dit était compliqué ou difficile à comprendre.
Dites-vous que la réponse de Jon Skeet n'a en fait pas de réponse à votre question? Parce que si elle n'a pas, la question n'a aucun sens. De l'utf-8 et ISO-8859-1 encodages de texte Unicode. Dans .NET, une chaîne de caractères est toujours au format Unicode dans la mémoire, c'est seulement lorsque vous souhaitez convertir un tableau d'octets (généralement parce que vous avez besoin de le stocker dans un fichier binaire ou de l'envoyer sur le réseau) qui vous impliquer en les codant. Jon Skeets réponse était au point et corriger la question à portée de main. Si pas, je suis la fermeture de ce trop-localisée depuis clairement la question est mal ensuite.
Non, j'ai demandé, qu'avez-vous essayé? Cette "question" est juste d'avoir quelqu'un pour vous dire quoi faire, avec aucune preuve de recherche préalable.
Je ne comprends pas ce que vous avez dit .... seulement je sais que la question a été ouvert il y a 3 ans!
Je ne vois pas en quoi ce que j'ai dit était compliqué ou difficile à comprendre.
Dites-vous que la réponse de Jon Skeet n'a en fait pas de réponse à votre question? Parce que si elle n'a pas, la question n'a aucun sens. De l'utf-8 et ISO-8859-1 encodages de texte Unicode. Dans .NET, une chaîne de caractères est toujours au format Unicode dans la mémoire, c'est seulement lorsque vous souhaitez convertir un tableau d'octets (généralement parce que vous avez besoin de le stocker dans un fichier binaire ou de l'envoyer sur le réseau) qui vous impliquer en les codant. Jon Skeets réponse était au point et corriger la question à portée de main. Si pas, je suis la fermeture de ce trop-localisée depuis clairement la question est mal ensuite.
OriginalL'auteur aco | 2009-09-30
Vous devez vous connecter pour publier un commentaire.
Comment sur:
Qui suppose que quand vous dites "chaîne UTF8" tu veux dire "des données binaires qui est de l'UTF-8 est une représentation d'un texte". Si vous voulez dire quelque chose d'autre, veuillez préciser 🙂
Noter que l'ISO-8859-1 ne représente qu'une infime proportion de l'Unicode. IIRC, vous vous retrouverez avec un "?" pour tous les caractères à partir de la source de données qui n'est pas disponible dans la norme ISO-8859-1.
Je prends problème avec votre utilisation du mot "petit". Techniquement, vous peut-être raison mais il est vrai aussi qu'une partie énorme de l'Unicode n'est pas pertinent pour la plupart des applications. Il y a une liste d'environ 30 langues modernes avec "Couverture Complète" de la norme ISO--8859-1 sur cette page. Spoiler: l'un d'eux est l'espagnol: en.wikipedia.org/wiki/ISO/IEC_8859-1
À moins que quelqu'un écrit en espagnol veut aussi inclure un emoji, ou le nom de quelqu'un qui n'est pas espagnol, ou un mot d'une autre langue etc. Je considère une application qui est limitée à la norme ISO-8859-1 pour être assez problématique dans le monde moderne. Chaque fois qu'un développeur a le choix, je conseille l'utilisation de l'UTF-8.
Je suis d'accord avec vous à 100%, mais j'ai juste senti la terminologie utilisée était à imposer un brin trompeur
Je m'en tiens à ça, vraiment. C'est une très petite partie de l'Unicode complète ensemble, et avec les emoji sont si populaires (et beaucoup d'autres cas d'utilisation) je pense qu'il serait adapté pour un très petit sous-ensemble des applications.
OriginalL'auteur Jon Skeet
L'encodage ISO-8859-1 qui est plus communément appelé Latin-1. Vous pouvez obtenir ce codage en procédant comme suit
L'complet de conversion peut être faite par la suite
MODIFIER
Que Jon l'a souligné, il peut être plus facile pour les gens de se rappeler le nombre décimal 28591 plutôt que le nombre hexadécimal &H6FAF.
cause j'ai utilisé un réflecteur et il a été outputing les nombres hexadécimaux 🙂
OriginalL'auteur JaredPar
Parce que
System.Text.Encoding.GetEncoding("ISO-8859-1")
ne prend pas en chargeñ
est ma conjecture, dans ce cas, vous devez utiliser un autre type de codage pour vous SMS.Veuillez lire Le Minimum Absolu que Tout Développeur Doit Absolument, Positivement Savoir Sur Unicode et les Jeux de Caractères (Pas d'Excuses!)
OriginalL'auteur Daniel Tiru
http://msdn.microsoft.com/en-us/library/system.text.encoding.convert.aspx
Essayer cela avec la variable "entrée" comme la Chaîne UTF-8;
VB.NET:
C#:
OriginalL'auteur Omar
Ne sais pas si cela devrait être posté ici, mais j'ai fait une petite fonction en C# pour vérifier si une chaîne de soutien de la cible type de codage.
Espère que cela peut être d'une aide quelconque...
OriginalL'auteur Daniel Tiru