标签: non-ascii-characters

使用\ b和国际字符的Javascript正则表达式问题

我在简单的正则表达式匹配方面遇到了很多问题.

我有这个带有重音字符的字符串(这只是一个例子)"Botó Entrepà Nadó Facebook! "我希望使用另一个列表中的单词来匹配单词.

这是我的代码的简化版本.例如匹配" Botó"

var matchExpr = new RegExp ('\\b' + 'Botó' + '\\b','i'); 
"Botó Entrepà Nadó Facebook! ".match(matchExpr);
Run Code Online (Sandbox Code Playgroud)

如果我运行它,它与Botó预期不匹配(Firefox,IE和Chrome).

我认为这是我的错误.但有趣的是......

如果我像这样修改字符串"Botón Entrepà Nadó Facebook! "(请注意" n"之后的" Botó")并运行相同的代码:

var matchExpr = new RegExp ('\\b' + 'Botó' + '\\b','i'); 
"Botón Entrepà Nadó Facebook! ".match(matchExpr);
Run Code Online (Sandbox Code Playgroud)

它匹配" Botó"!!!! ????? (至少在Firefox中).这对我n来说没有意义,因为" "不是一个单词边界(匹配\b).

如果您尝试匹配整个单词:

var matchExpr = new RegExp ('\\b' + 'Botón' + '\\b','i'); 
"Botón Entrepà Nadó …
Run Code Online (Sandbox Code Playgroud)

javascript regex match non-ascii-characters

12
推荐指数
1
解决办法
4036
查看次数

正则表达式口音不敏感?

我需要一个C#程序中的正则表达式.

我要捕获具有特定结构的文件的名称.

我使用了\ w char类,但问题是这个类与任何重音字符都不匹配.

那怎么办呢?我只是不想在我的模式中添加最常用的重音字母,因为我们理论上可以在每个字母上加上每个重音.

所以我虽然可能有一种语法,比如说我们想要一个不区分大小写(或者一个考虑重音的类),或者一个"正则表达式"选项,它允许我不区分大小写.

你知道这样的事吗?

非常感谢你

c# regex diacritics non-ascii-characters

12
推荐指数
3
解决办法
1万
查看次数

Node JS crypto,无法在带重音的字符上创建hmac

当我尝试加密的文本具有重音字符(例如ä,ï,ë)时,我遇到了在NodeJS中生成正确签名(使用crypto.js)的问题

generateSignature = function (str, secKey) { 
 var hmac = crypto.createHmac('sha1', secKey);
 var sig = hmac.update(str).digest('hex');
 return sig;
};
Run Code Online (Sandbox Code Playgroud)

如果'str'不包含重音字符(如ä,ï,ë等字符),则此函数将返回正确的HMAC签名.如果文本中存在重音字符,则不会返回正确的HMAC.重音字符在UTF8编码中有效,所以我不知道为什么加密有问题.可能是我需要以某种方式告诉加密我正在签署utf8编码文本,但我不知道如何做到这一点.

这篇文章中描述了完全相同的问题:带有重音的NodeJS hmac摘要问题 然而,帖子本身以及答案对我来说没有意义(因为他们传递他们想要加密的数据,秘密密钥应该在哪里走).

以下是str和secKey的硬编码值的代码版本:

  var crypto = require('crypto');

  str="äïë";  
  secKey="secret"; 
  var hmac = crypto.createHmac('sha1', secKey);
  var sig = hmac.update(new Buffer(str, 'utf8')).digest('hex');
  console.log("Sig:      " + sig);
  console.log("Expected: 094b2ba039775bbf970a58e4a0a61b248953d30b"); 
  // "Expected" was generated using http://hash.online-convert.com/sha1-generator
Run Code Online (Sandbox Code Playgroud)

输出::

西格:39c9f1a6094c76534157739681456e7878557f58

预计:094b2ba039775bbf970a58e4a0a61b248953d30b

谢谢

utf-8 hmac non-ascii-characters node.js node-crypto

12
推荐指数
1
解决办法
5723
查看次数

"(?i)"不适用于重音符号

我有一个Java方法,在一个短语中查找单词,忽略单词的区分大小写,如果找到单词,则将其从短语中删除.这个词和短语可以是任何东西.他们是变种.这是我的代码:

private String removeWord( String phrase, String word ) {
    phrase = phrase.replaceAll( "(?i)" + word , "" );
    return phrase;
}
Run Code Online (Sandbox Code Playgroud)

事情很完美,除非这个词有重音.例如,如果单词是" álvarez "并且短语是" Álvarez短语 ",那么它将不起作用,因为"(?i)"在这种情况下无效.

有没有办法让"(?i)"与重音字符一起使用?

java regex ignore-case non-ascii-characters

12
推荐指数
1
解决办法
7070
查看次数

mySQL表中的重音字符

我有一些法语文本(包含重音字符,如"é"),存储在MySQL表中,其排序规则为utf8_unicode_ci(包括表和列),我想在HTML5页面上输出.

HTML页面字符集是UTF-8(<meta charset ="utf-8"/>),PHP文件本身编码为"没有BOM的UTF-8"(我在Windows上使用Notepad ++).我使用PHP5来请求数据库并生成HTML.

但是,在输出页面上,特殊字符(例如"é")显示为乱码并被" "替换.

当我浏览数据库(通过phpMyAdmin)时,那些相同的重音字符显示就好了.

我在这里错过了什么?

(注意:将页面编码(通过Firefox的"web开发人员"菜单)更改为ISO-8859-1解决了问题...除了直接出现在PHP文件中的特殊字符,现在已经损坏了.但无论如何,我我宁愿理解为什么它不能像UTF-8一样工作而不是改变编码而不理解它的工作原理.^^;)

php mysql unicode utf-8 non-ascii-characters

12
推荐指数
2
解决办法
4万
查看次数

检查字符串是否包含SQL中的重音字符?

如果输入字符串包含任何重音字符,我想执行任务,否则在SQL中执行另一个任务.有没有办法在SQL中检查这个条件?

例如:

@myString1 = 'àéêöhello!'

IF(@myString1 contains any accented characters)
  Task1
ELSE
  Task2
Run Code Online (Sandbox Code Playgroud)

sql sql-server diacritics non-ascii-characters

12
推荐指数
1
解决办法
9752
查看次数

Copyleft符号

有没有简单的方法来打印copyleft符号?

在此输入图像描述

https://en.wikipedia.org/wiki/Copyleft

例如,简单如下:
©&copy;

它可能是:
&anticopy;&anticopy;

html unicode ascii non-ascii-characters

12
推荐指数
6
解决办法
7532
查看次数

具有ß字符的Java compilaton问题

我遇到了一个奇怪的问题.在下面的代码中,我正在寻找ß的存在.

public static void main(String[] args) {
    char [] chArray = {'ß'};
    String str = "Testß";
    for(int i=0; i<chArray.length; i++){
        if(str.indexOf(chArray[i])>-1){
            System.out.println("ß is present");
            break;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我有一个在Linux上运行JBOSS的Web应用程序,Java 6. 上面的代码在上面指定的应用程序中包含代码时没有检测到ß的存在. 令人惊讶的是,如果我在我的eclipse工作区中编译相同的文件,然后在应用程序中应用补丁,它将按预期运行!

注意事项:

  1. 应用程序构建环境对我来说是一个黑盒子,因此不知道javac命令是否存在任何-encoding选项或类似的东西
  2. 我的eclipse的JRE是java8,但为该项目设置的编译器版本是Java6
  3. 我在数组声明中将值从ß更改为等效于\ u00DF的unicode,但行为仍然相同.

    char [] chArray = {'\ u00DF'};

  4. 当我反编译生成的类文件时,字符数组声明的值显示为65533,即\ uFFFD,只有用于未识别符号的替换字符.我使用JD-GUI作为反编译器,我认为不值得信赖!

需要你的帮助人!我确信它与以下内容不同:beta Java的equalsIgnoreCase的区分大小写问题与ß(德语字母表中使用的"Sharp S")失败

提前致谢

java non-ascii-characters

11
推荐指数
1
解决办法
1908
查看次数

PyYaml - 使用特殊字符(即重音符号)转储unicode

我正在使用yaml文件,这些文件必须是人类可读和可编辑的,但也可以从Python代码编辑.我正在使用Python 2.7.3

该文件需要处理重音(主要用于处理法语文本).

以下是我的问题示例:

import codecs
import yaml

file = r'toto.txt'

f = codecs.open(file,"w",encoding="utf-8")

text = u'héhéhé, hûhûhû'

textDict = {"data": text}

f.write( 'write unicode     : ' + text + '\n' )
f.write( 'write dict        : ' + unicode(textDict) + '\n' )
f.write( 'yaml dump unicode : ' + yaml.dump(text))
f.write( 'yaml dump dict    : ' + yaml.dump(textDict))
f.write( 'yaml safe unicode : ' + yaml.safe_dump(text))
f.write( 'yaml safe dict    : ' + yaml.safe_dump(textDict))

f.close()
Run Code Online (Sandbox Code Playgroud)

书面文件包含:

write unicode     : héhéhé, …
Run Code Online (Sandbox Code Playgroud)

python unicode yaml non-ascii-characters pyyaml

11
推荐指数
2
解决办法
5336
查看次数

圆圈中感叹号的字符代码是什么?

圆圈中感叹号的Unicode或Segoe UI符号(或其他字体)代码是什么?

在此输入图像描述

unicode symbols character non-ascii-characters

10
推荐指数
1
解决办法
1万
查看次数