Tag: unicode

在java中将国际string转换为\ u代码

如何将国际(如俄罗斯)string转换为\u数字(unicode数字) OK ?

如何防止诸如Zalgo文本的变音符号

上图中的人物是在几个月前由计算机安全专家MikkoHyppönen啾啾 ,他以计算机病毒和TED计算机安全方面的工作而闻名。 关于这个,我只会发表一个形象,但你明白了。 这显然不是你想要传播你的网站,并吓坏游客。 经过进一步的检查,这个angular色似乎是一个泰国字母组合的超过87个变音符号(有甚至是一个限制?!)。 这让我想到安全性,本地化以及如何处理这种input。 我的search引导我在Stack上提出这个问题 ,而Michael Kaplan则发表了一篇关于剥离符号的博客文章。 在这个例子中,他演示了如何将一个string分解为它的“基本”字符(为简洁起见,在这里简化): StringBuilder sb = new StringBuilder(); foreach (char c in "façade".Normalize(NormalizationForm.FormD)) { if (char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark) sb.Append(c); } Response.Write(sb.ToString()); // facade 我可以看到这在某些情况下会是有用的,但是在用户input方面,它将删除所有的变音符号。 正如卡普兰指出的那样,删除某些语言的变音符号可以完全改变这个词的含义。 这引出了一个问题: 如何在用户input/输出中允许一些变音符号,但排除其他极端情况,如MikkoHyppönen的人物angular色?

如何过滤(或replace)UTF-8中需要超过3个字节的unicode字符?

我正在使用Python和Django,但是我遇到了由于MySQL限制而导致的问题。 根据MySQL 5.1文档 ,他们的utf8实现不支持4字节的字符。 MySQL 5.5将使用utf8mb4支持4字节字符; 而且将来有一天, utf8也可能会支持它。 但是我的服务器还没有准备好升级到MySQL 5.5,因此我只能使用3个字节或更less的UTF-8字符。 我的问题是: 如何过滤(或replace)将需要超过3个字节的Unicode字符? 我想用官方的\ufffd ( U + FFFDreplace字符 )replace所有的4字节字符,还是用? 。 换句话说,我想要一个与Python自己的str.encode()方法非常相似的行为(当传递'replace'参数时)。 编辑:我想要一个类似于encode()的行为,但我不想实际编码string。 我想在过滤后仍然有一个unicodestring。 在存储到MySQL之前,我不想逃避这个angular色,因为那意味着我需要将我从数据库中获得的所有string都取消,这是非常烦人和不可行的。 也可以看看: 将某些unicode字符保存到MySQL (在Django票证系统中) 时出现“错误的string值”警告 '𠂉'不是一个有效的unicode字符,但在unicode字符集? (在堆栈溢出) [编辑]增加了有关build议解决scheme的testing 所以我得到了很好的答案。 谢谢,人民! 现在,为了select其中之一,我做了一个快速testing,find最简单,最快速的一个。 #!/usr/bin/env python # -*- coding: utf-8 -*- # vi:ts=4 sw=4 et import cProfile import random import re # How many times to […]

如何在OS X上的Git文件名中处理亚洲字符

我使用的是US-English OS X 10.6.4,并尝试在Git存储库中存储具有亚洲字符的文件名。 好吧,让我们在Git工作树中创build一个这样的文件: $ touch どうもありがとうミスターロボット.txt Git将其显示为八进制转义的UTF-8格式: $ git version git version 1.7.3.1 $ git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>…" to include in what will be committed) # # "\343\201\250\343\202\231\343\201\206\343\202\202\343\201\202\343\202\212\343\201\213\343\202\231\343\201\250\343\201\206\343\203\237\343\202\271\343\202\277\343\203\274\343\203\255\343\203\233\343\202\231\343\203\203\343\203\210.txt" nothing added to commit but untracked files present (use "git […]

Java中的unicode换行符(\ u000d)

我们来看下面的Java代码片段。 public class Main { public static void main(String[] args) { // new Character(' \u000d System.out.println("Hello"); } } 在上面的代码中,虽然main()方法中的唯一一行被注释掉了,但它在控制台上显示输出Hello ,即使看起来这条注释行包含一些语法错误。 如果这一行没有注释,它将不会工作,导致编译时错误。 为什么在这里输出“Hello”?

UTF-8和Unicode,0xC0和0x80是什么?

在过去的几天里,我一直在阅读Unicode和UTF-8,我经常遇到类似于这样的比较: int strlen_utf8(char *s) { int i = 0, j = 0; while (s[i]) { if ((s[i] & 0xc0) != 0x80) j++; i++; } return j; } 有人可以澄清与0xc0的比较,并检查是否是最重要的位? 谢谢! 编辑:ANDED,不比较,使用了错误的字;)

我在哪里可以得到一个Unicode字符的类列表?

我是学习Unicode的新手,不知道我需要学习多less基于我的ASCII背景,但我正在阅读规则标识符的C#规范,以确定什么字符是允许的Azure表 (直接基于C#规范)。 我在哪里可以find属于这些类别的Unicode字符列表: letter-character :类Lu,Ll,Lt,Lm,Lo或Nl的Unicode字符 combining-character :Mn或Mc类的Unicode字符 decimal-digit-character :类Nd的Unicode字符 connecting-character :类Pc的Unicode字符 formatting-character :类Cf的Unicode字符

什么是“高”右人字形的HTML unicode字符?

我正在寻找一个unicode右边的V形字符,左边没有任何句柄,我希望顶点和底点分开很远。 与search框中的Ubuntu(网站)箭头类似。 我不想要&raquo; (»)或者&rarr; (→)或简单地> 。 第一个问题是有两个V形,而不是一个。 另一个太小,有一个句柄。 第三个顶点太尖锐了。 我看过几乎所有的Unicode图表,如果没有,那么我只需要使用一个图像(如Ubuntu)。 我会处理它,但这是最后的手段。 任何帮助将非常感激!

如何将Unicode转换为大写打印?

我有这个: >>> print 'example' example >>> print 'exámple' exámple >>> print 'exámple'.upper() EXáMPLE 我需要做什么来打印: EXÁMPLE ('a'用来表示重音,但用大写字母。) 我正在使用Python 2.6。

使用Objective C / Cocoa来避开unicode字符,即\ u1234

我从中获取数据的某些站点正在返回UTF-8string,并且UTF-8字符被转义,即: \u5404\u500b\u90fd 有一个内置的cocoafunction,可能有助于这一点,或者我将不得不写我自己的解码algorithm。