是什么之间的区别Unicode,UTF8,UTF7,UTF16,UTF32,ASCII,和ANSI编码?
这些对程序员有什么帮助?
我想提醒一个字符串的每个字母,但我不确定如何做到这一点.
所以,如果我有:
var str = 'This is my string';
Run Code Online (Sandbox Code Playgroud)
我希望能够分别提醒T,h,i,s等.这只是我正在研究的一个想法的开始,但我需要知道如何分别处理每个字母.
我想使用jQuery,并且在考虑字符串的长度后,我可能需要使用split函数.
想法?
我想知道为什么git告诉我这个:?
$ git diff MyFile.txt
diff --git a/MyFile.txt b/MyFile.txt
index d41a4f3..15dcfa2 100644
Binary files a/MyFile.txt and b/MyFile.txt differ
Run Code Online (Sandbox Code Playgroud)
他们不是文本文件吗?
我检查了.gitattributes,它是空的.为什么我收到这条消息?我不能再使用差异了
添加:
我注意到@文件中有一个权限,这是什么?这可能是原因吗?
$ls -all
drwxr-xr-x 5 nacho4d staff 170 28 Jul 17:07 .
drwxr-xr-x 16 nacho4d staff 544 28 Jul 16:39 ..
-rw-r--r--@ 1 nacho4d staff 6148 28 Jul 16:15 .DS_Store
-rw-r--r--@ 1 nacho4d staff 746 28 Jul 17:07 MyFile.txt
-rw-r--r-- 1 nacho4d staff 22538 5 Apr 16:18 OtherFile.txt
Run Code Online (Sandbox Code Playgroud) Laravel 5.4上的迁移错误 php artisan make:auth
[Illuminate\Database\QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长; 最大密钥长度为767字节(SQL:alter tabl e
usersadd uniqueusers_email_unique([PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长; 最大密钥长度为767字节
试图理解现代Unicode的微妙之处让我头疼.特别是,代码点,字符,字形和字形之间的区别 - 在最简单的情况下,当使用ASCII字符处理英文文本时,所有这些概念彼此之间都存在一对一的关系 - 这给我带来了麻烦.
看看这些术语如何在像Matthias Bynens的JavaScript这样的文档中使用有一个unicode问题或Wikipedia关于Han统一的文章,我收集到这些概念不是一回事,并且将它们混淆是危险的,但我有点像努力去理解每个术语的含义.
Unicode Consortium提供了一个词汇表来解释这些东西,但它充满了"定义",如下所示:
抽象字符.用于组织,控制或表示文本数据的信息单元....
...
性格....(2)抽象字符的同义词.(3)Unicode字符编码的基本编码单位....
...
雕文.(1)表示一个或多个字形图像的抽象形式.(2)字形图像的同义词.在显示Unicode字符数据时,可以选择一个或多个字形来描绘特定字符.
...
Grapheme.(1)在特定书写系统的背景下最低限度的独特写作单位....
这些定义中的大多数都具有非常学术和正式的声音质量,但缺乏任何意义的质量,或者将定义问题推迟到另一个词汇表条目或标准部分.
因此,我寻求那些比我学得更多的人的神秘智慧.这些概念中的每一个究竟是如何彼此不同的,在什么情况下它们之间不会有一对一的关系?
String.prototype.codePointAt()和String.prototype.charCodeAt()JavaScript有什么区别?
'A'.codePointAt(); // 65
'A'.charCodeAt(); // 65
Run Code Online (Sandbox Code Playgroud) 我正在尝试在R中读取以下UTF-8编码文件,但每当我读取它时,unicode字符都没有正确编码:

我用来处理文件的脚本如下:
defaultEncoding <- "UTF8"
detalheVotacaoMunicipioZonaTypes <- c("character", "character", "factor", "factor", "factor", "factor", "factor",
"factor", "factor", "factor", "factor", "factor", "numeric",
"numeric", "numeric", "numeric", "numeric", "numeric",
"numeric", "numeric", "numeric", "numeric", "numeric",
"numeric", "character", "character")
readDetalheVotacaoMunicipioZona <- function( fileName ) {
fileConnection = file(fileName,encoding=defaultEncoding)
contents <- readChar(fileConnection, file.info(fileName)$size)
close(fileConnection)
contents <- gsub('"', "", contents)
columnNames <- c("data_geracao", "hora_geracao", "ano_eleicao", "num_turno", "descricao_eleicao", "sigla_uf", "sigla_ue",
"codigo_municipio", "nome_municipio", "numero_zona", "codigo_cargo", "descricao_cargo", "qtd_aptos",
"qtd_secoes", "qtd_secoes_agregadas", "qtd_aptos_tot", "qtd_secoes_tot", "qtd_comparecimento",
"qtd_abstencoes", "qtd_votos_nominais", "qtd_votos_brancos", "qtd_votos_nulos", "qtd_votos_legenda",
"qtd_votos_anulados", …Run Code Online (Sandbox Code Playgroud) 我面临的情况是我在文本中获取Surrogate字符,我将保存到MySql 5.1.由于此处不支持UTF-16,我想在将其保存到数据库之前通过java方法手动删除这些代理对.
我现在已经编写了以下方法,我很想知道是否有一种直接和最佳的方法来处理这个问题.
在此先感谢您的帮助.
public static String removeSurrogates(String query) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < query.length() - 1; i++) {
char firstChar = query.charAt(i);
char nextChar = query.charAt(i+1);
if (Character.isSurrogatePair(firstChar, nextChar) == false) {
sb.append(firstChar);
} else {
i++;
}
}
if (Character.isHighSurrogate(query.charAt(query.length() - 1)) == false
&& Character.isLowSurrogate(query.charAt(query.length() - 1)) == false) {
sb.append(query.charAt(query.length() - 1));
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud) 考虑以下IPython交流:
In [1]: s = u'??????'
In [2]: len(s)
Out[2]: 8
Run Code Online (Sandbox Code Playgroud)
应该是正确的输出7,但由于这七个中文字符中的第五个具有高Unicode代码点,因此它以UTF-8表示为"代理对",而不仅仅是一个简单的代码点,因此Python认为它是两个字符而不是一个字符.
即使我使用unicodedata,它将代理对正确地作为单个代码点(\U00026177)返回,当传递给len()错误的长度时仍然会返回:
In [3]: import unicodedata
In [4]: unicodedata.normalize('NFC', s)
Out[4]: u'\u83ef\u889e\u8207\u7dfc\U00026177\u540c\u6b78'
In [5]: len(unicodedata.normalize('NFC', s))
Out[5]: 8
Run Code Online (Sandbox Code Playgroud)
如果不采取像UTF-32重新编译Python这样的重大步骤,是否有一种简单的方法可以在这种情况下获得正确的长度?
我正在使用IPython 0.13,Python 2.7.2,Mac OS 10.8.2.
GIT中支持多种不同的编码方案:UTF-7,UTF-8,UTF-32,以及非UTF的。
鉴于此,它为什么不支持UTF-16?
有很多问题询问如何获取git以支持UTF-16,但我认为这尚未明确提出或得到回答。
假设我们有变量myString ="blabla"或mystring = 998769
myString.Length; //will get you your result
myString.Count(char.IsLetter); //if you only want the count of letters:
Run Code Online (Sandbox Code Playgroud)
如何获得,独特的字符数?我的意思是"blabla"结果必须是3,doe"998769"它将是4.是否准备好了功能?有什么建议?
我有一个 utf-8 编码的文本文件。我想在python中自动将它的unicode更改为ANSI或unicode。是否可以?我该怎么做?