Tag: unicode

在C#中将字符串/整数转换为上标

是否有内置的.NET函数或简单的转换方式: “01234” 至: “\u2070\u00B9\u00B2\u00B3\u2074” 请注意,上标1,2和3不在\ u2070- \ u209F范围内,但是\ u0080- \ u00FF 。

将vcards转换为Windows-1252

我正在尝试用C#编写一个程序,它将带有多个联系人的vCard(VCF)文件拆分为每个联系人的单个文件。 据我所知,vCard需要保存为ANSI(1252),大多数手机才能读取它们。 但是,如果我使用StreamReader打开VCF文件,然后使用StreamWriter将其写回(将1252设置为编码格式),则所有特殊字符(如å , æ和ø被写为? 。 当然ANSI(1252)会支持这些字符。 我该如何解决? 编辑:这是我用来读写文件的代码片段。 private void ReadFile() { StreamReader sreader = new StreamReader(sourceVCFFile); string fullFileContents = sreader.ReadToEnd(); } private void WriteFile() { StreamWriter swriter = new StreamWriter(sourceVCFFile, false, Encoding.GetEncoding(1252)); swriter.Write(fullFileContents); }

将RTF特殊字符输出为Unicode

我一直在寻找谷歌和Stackoverflow,但没有找到我需要的东西,但我的问题似乎很简单。 无论如何; 将一串RTF特殊字符(例如“\’d3 \’d6”(在本例中为俄语)转换为使用C#的unicode字符或字符串的方法是什么?

将std :: wstring的内容从C ++返回到C#

我有一个非托管的C ++ DLL,我用一个简单的C接口包装,所以我可以从C#上调用PInvoke。 这是C包装器中的示例方法: const wchar_t* getMyString() { // Assume that someWideString is a std::wstring that will remain // in memory for the life of the incoming calls. return someWideString.c_str(); } 这是我的C#DLLImport设置。 [DllImport( “my.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl )] private static extern string GetMyString(); 但是,字符串没有正确编组,通常会搞砸第一个字符,或者有时会显示一堆中文字符。 我已经记录了C端实现的输出,以确认std :: wstring是否正确形成。 我还尝试更改DLLImport以返回IntPtr并使用Marshal.PtrToStringUni使用包装方法进行转换,它具有相同的结果。 [DllImport( “my.dll”, CallingConvention = […]

如何在C#中将“=?utf-8?B?…?=”解码为字符串

我使用Visual Studio 2010,C#使用IMAP读取Gmail收件箱,它可以作为魅力,但我认为Unicode不完全支持,因为我无法轻松获得波斯语(波斯语)字符串。 例如,我有我的字符串: سلام ,但IMAP给了我: “=?utf-8?B?2LPZhNin2YU=?=” 。 如何将其转换为原始字符串? 将utf-8转换为字符串的任何提示?

如何在C#中获取unicode字符的十进制值?

如何在C#中获取unicode字符的数值? 例如,如果给出泰米尔字符அ ( U + 0B85 ),则输出应为2949 (即0x0B85 ) 也可以看看 C ++: 如何在c ++中获取unicode字符的十进制值 Java: 我如何获得Unicode字符的代码? 多个代码点字符 某些字符需要多个代码点。 在这个例子中,UTF-16,每个代码单元仍然在Basic Multilingual Plane中: (即U+0072 U+0327 U+030C ) (即U+0072 U+0338 U+0327 U+0316 U+0317 U+0300 U+0301 U+0302 U+0308 U+0360 ) 更重要的是,一个“字符”可能需要超过1个UTF-16代码单元,它可能需要2个以上的UTF-16代码单元,它可能需要3个以上的UTF-16代码单元。 更重要的是,一个“字符”可能需要几十个unicode代码点。 在C#中的UTF-16中,意味着超过1个char 。 一个角色可能需要17个char 。 我的问题是将char转换为UTF-16编码值。 即使整个17个字符串只代表一个“字符”,我仍然想知道如何将每个UTF-16单位转换为数字值。 例如 String s = “அ”; int i = Unicode(s[0]); 其中Unicode返回输出表达式的第一个字符的Unicode标准定义的整数值。

您如何从.NET字符串中获取一系列Unicode代码点?

我有一个字符范围限制列表,我需要检查字符串,但.NET中的char类型是UTF-16,因此一些字符变为古怪(代理)对。 因此,当枚举string所有char时,我不会获得32位Unicode代码点,并且某些与高值的比较会失败。 我非常了解Unicode,如果有必要,我可以自己解析字节,但我正在寻找一个C#/ .NET Framework BCL解决方案。 所以…… 如何将string转换为32位Unicode代码点的数组( int[] )?

将全宽转换为半宽

在C#中,如何将使用全角forms字符的字符串转换为半宽forms字符? 例如,给定userInput ,我想将Stackoverflow转换为Stackoverflow : string userInput= “Stackoverflow”; //string userInput= “Stackoverflow”;

使用AT命令通过GSM调制解调器在C#中发送Unicode消息(例如波斯语和阿拉伯语)

我正在使用AT命令在C#.Net中开发GSM调制解调器(D-Link DWM-156)的应用程序。 我在发送Unicode消息时遇到问题(例如用波斯语或阿拉伯语写的消息)。 这是我的计划的核心: SerialPort GSMPort = new SerialPort(); GSMPort.PortName = “COM6”; GSMPort.BaudRate = 9600; GSMPort.Parity = Parity.None; GSMPort.DataBits = 8; GSMPort.StopBits = StopBits.One; GSMPort.Handshake = HandShake.RequestToSend; GSMPort.DtrEnable = true; GSMPort.RtsEnable = true; GSMPort.Open(); GSMPort.Write(“AT\r”); Thread.Sleep(1000); GSMPort.Write(“AT+CMGF=1\r”); Thread.Sleep(1000); GSMPort.Write(“AT+CMGS=\”” + destinationNumber + “\”\r\n”); Thread.Sleep(1000); GSMPort.Write(shortMessage+ “\x1A”); 它适用于英文和ASCII字母。 我已阅读本文 ,可以使用AT命令在Hyperterminal中发送Unicode消息: AT [Enter] OK AT+CSCS=”UCS2″ or AT+CSCS=”HEX” […]

System.Windows.Forms.TextBox中未显示的Unicode字符

当我从VisualStudio调试器中剪切并粘贴它们时,这些字符显示正常,但是在调试器和我尝试显示此文本的TextBox中,它只显示正方形。 说明\ r \ n海流受季风影响,3-9月份其流向主要向北,流速为2节,有时达3节; 10月至次年4月份其流向南至东南方向,流速为2节。 r \ñ注意\ r \ n附近有火山爆发的危险,航行时严加注意\ r \ n 我认为TextBox支持Unicode文本。 知道如何在我的应用程序中显示此文本吗?