Tag: unicode

如何将unicode数据保存到oracle?

我试图在oracle数据库(10 g)中保存unicode数据(希腊语)。 我创建了一个简单的表: 替代文字http://sofzh.miximages.com/c%23/dvpqnk.png 我知道NVARCHAR2总是使用UTF-16编码,所以它必须适用于所有(人类)语言。 然后我试图在数据库中插入一个字符串。 我在代码中硬编码了字符串(“你好吗?”)。 然后我尝试从数据库中恢复并显示它。 class Program { static string connectionString = “”; static void Main (string[] args) { string textBefore = “Τι κάνεις;”; DeleteAll (); SaveToDatabase (textBefore); string textAfter = GetFromDatabase (); string beforeData = String.Format (“Before: {0}, ({1})”, textBefore, ToHex (textBefore)); string afterData = String.Format (“After: {0}, ({1})”, textAfter, ToHex […]

C#和UTF-16字符

在C#中是否可以使用不在Plane 0中的UTF-32字符作为char? string s = “”; // valid char c = ”; // generates a compiler error (“Too many characters in character literal”) 在s中它由两个字符表示,而不是一个。 编辑:我的意思是,是否有一个字符AN字符串类型,每个字符支持完整的unicode,UTF-32或UTF-8? 例如,如果我想在字符串中的utf-32(可能不在plane0中)字符上进行for循环。

Unicode字符串

我有以下String 。 string s = “\\u0625\\u0647\\u0644”; 当我打印上面的序列时,我得到: \u0625\u0647\u062 如何获得真正可打印的Unicode字符而不是此\ uxxxx表示? 我找到了答案: s = System.Text.RegularExpressions.Regex.Unescape(s);

如何从字符串中删除表情符号字符?

我从移动设备获得了文本输入。 它包含表情符号。 在C#中,我将文本作为 Text 🍫🌐 text 简单地说,我想要输出文本 Text text 我试图用rejex从文本中删除所有这样的表情符号..除了,我不知道如何将该表情符号转换为它的unicode序列..我该怎么做? 编辑: 我正在尝试将用户输入保存到mysql中。 它看起来像mysql UTF8并不真正支持unicode字符, 正确的方法是通过更改架构,但我认为这不是我的选择。 所以我试图删除所有的表情符号字符,然后将其保存在数据库中。 这是我相关专栏的架构: 我使用Nhibernate作为我的ORM,生成的插入查询如下所示: Insert into `Content` (ContentTypeId, Comments, DateCreated) values (?p0, ?p1, ?p2); ?p0 = 4 [Type: Int32 (0)]. ?p1 = ‘Text 🍫🌐 text’ [Type: String (20)], ?p2 = 19/01/2015 10:38:23 [Type: DateTime (0)] 当我从日志中复制此查询并直接在mysql上运行时,我收到此错误: 1 warning(s): 1366 Incorrect string […]

用重音字符反转一个字符串?

所以我看到了Jon的双向飞碟video,并且有一个代码示例: 应该有一个问题é – 在倒车之后但是我猜它在.net2(恕我直言)上失败了,无论如何它确实对我有效并且我确实看到了正确的反转字符串。 char[] a=”Les Misérables”.ToCharArray(); Array.Reverse(a); string n= new string(a); Console.WriteLine (n); //selbarésiM seL 但我进一步说: 在希伯来语中有“Alef”字符: א 我可以添加标点符号: אֳ (我认为它由2个字符组成 – 但显示为一个。) 但现在看看会发生什么: char[] a=”Les Misאֳrables”.ToCharArray(); Array.Reverse(a); string n= new string(a); Console.WriteLine (n); //selbarֳאsiM seL 有一个分裂…… 我能理解为什么会这样: Console.WriteLine (“אֳ”.Length); //2 所以我想知道在C#中是否存在针对此类问题的解决方法(或者我应该构建自己的机制……)

MySQL C#文本编码问题

我有一个旧的MySQL数据库,编码设置为UTF-8。 我正在使用Ado.Net Entity框架连接到它。 当我想要ë同样的字符时,我从中检索的字符串有奇怪的字符。 例如:“ë”是“Ô。 我想我可以通过从UTF8转换为UTF16来实现这一目标。 return Encoding.Unicode.GetString( Encoding.Convert( Encoding.UTF8, Encoding.Unicode, Encoding.UTF8.GetBytes(utf8))); } 然而,这并没有改变一件事。 我怎样才能以正确的forms从这个数据库中获取数据?

UTF-8或UTF-16或UTF-32或UCS-2

我正在设计一个新的CMS,但想设计它以满足我未来的所有需求,如多语言内容,所以我认为Unicode(UTF-8)是最好的解决方案 但通过一些搜索,我得到了这篇文章 http://msdn.microsoft.com/en-us/library/bb330962%28SQL.90%29.aspx#intlftrql2005_topic2 所以我现在很困惑现在使用UTF-8 / UTF-16 / UTF-32 / UCS-2 这对于多语言内容和性能等更好。 PS:我正在使用Asp.net和c#以及SqlServer 2005 提前致谢

在Windows Server 2012中启动更改

编辑:我原本以为这与.NET Framework 4.5有关。 原来它也适用于.NET Framework 4.0。 Windows Server 2012中的字符串处理方式发生了变化,我试图更好地理解它。 似乎StartsWith的行为已经改变。 使用.NET Framework 4.0和4.5可以重现该问题。 使用Windows 7上的.NET Framework 4.5,下面的程序打印“False,t”。 在Windows 2012 Server上,它会打印“True,t”。 internal class Program { private static void Main(string[] args) { string byteOrderMark = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); Console.WriteLine(“test”.StartsWith(byteOrderMark)); Console.WriteLine(“test”[0]); } } 换句话说,无论字符串内容如何,​​StartsWith(ByteOrderMark)都返回true。 如果您有使用以下方法尝试剥离字节顺序标记的代码,此代码将在Windows 7上正常工作,但将在Windows 2012上打印“est”。 internal class Program { private static void Main(string[] args) { string byteOrderMark = […]

ASCIIEncoding.ASCII.GetBytes()返回意外值

这个C#代码…… string s = “\u00C0”; byte[] bytes = ASCIIEncoding.ASCII.GetBytes(s); Trace.WriteLine(BitConverter.ToString(bytes)); 产生以下输出: 3F 为什么输出不是C0?

获取字体支持的字符 – 在C#中

我有第三方字体,支持日语字符,我需要用于应用程序。 每当该字体不支持某个字符时,就会绘制常见的矩形(“默认字符”)。 显然不是所有日文字符都受支持,因为如果我试图绘制翻译办公室给我们的翻译,那么就会有很多矩形。 每当使用不支持的字符时,我都需要得到通知,这样我就可以更改这个单个字符的字体(比如Word做的那样)或者对它实现一些其他的反应。 有任何想法吗? 如果我可以从TTF文件中提取unicode字符列表,那么我将能够检查此列表是否包含已使用的字符。 但我怎么能这样做?