有一种更有效的方法可以从字符串中删除重音而不用一个大数组来替换字符吗?
例如:
removeaccents("áèfoo")
Run Code Online (Sandbox Code Playgroud)
输出:
aefoo
Run Code Online (Sandbox Code Playgroud)
在ASCII表中没有重音符号,我不知道怎么做.提前致谢.:)
在表单中,我有一个带有数据列表的文本输入。在数据列表中,我添加了不会出现在我的文本输入中的重音术语。例如:如果我输入“a”,带有“ä”或“à”的术语将不会出现在建议中...
最好是整体对口音不敏感
有没有人遇到过这个问题?
谢谢
我有几个朋友的名字有像'ö'这样的字母。在 OS XI 的所有其他地方都可以按住“o”,然后在小弹出菜单中选择 2。这在 iTerm2 中不起作用。在 iTerm2 中,我得到了很多 o。我还在 OS X 键盘文本设置中设置了一些替换,以允许输入一个人的姓名首字母以替换他们的名字。
是否可以让这些输入法中的任何一种与 iTerm2 一起使用?
如果这些都行不通,我有什么选择?我真的希望我不需要为每种不同类型的口音记住一堆 alt+key 的快捷键。
我想在评论中匹配所有提到的用户.例:
var comment = '@Agneš, @Petar, please take a look at this';
var mentionedUsers = comment.match(/@\w+/g);
console.log(mentionedUsers)Run Code Online (Sandbox Code Playgroud)
我期待["@Agneš", "@Petar"]但是得到["@Agne", "@Petar"].如您所见,š符号不匹配.
如何匹配所有字母符号包括非ascii?
这是我在这里找到的重音字符列表.
ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
我使用Codeigniter函数 convert_accented_characters将重音字符转换为ASCII字符.但是,它似乎失败了两个字符(Þ和þ),见输出:
AAAeAAAAECEEEEIIIIDjNOOOOOeOUUUUeYÞssaaaaaeaaeceeeeiiiidjnoooooeouuuueyþy
如何扩展此数组以考虑这两个字符.
这种变化是否足够?
'/?/Þ/þ' => 'p',在第88行?我不熟悉这些角色以及它们来自哪个语言!
我有以下 PHP 代码:
\n\n$search = "foo bar que";\n$search_string = str_replace(" ", "|", $search);\n\n$text = "This is my foo text with qu\xc3\xa9 and other accented characters.";\n$text = preg_replace("/$search_string/i", "<b>$0</b>", $text);\n\necho $text;\nRun Code Online (Sandbox Code Playgroud)\n\n显然,“que”与“qu\xc3\xa9”不匹配。我怎样才能改变这一点?有没有办法让preg_replace忽略所有口音?
必须匹配的字符(西班牙语):
\n\n\xc3\xa1,\xc3\x81,\xc3\xa9,\xc3\x89,\xc3\xad,\xc3\x8d,\xc3\xb3,\xc3\x93,\xc3\xba,\xc3\x9a,\xc3\xb1,\xc3\x91\nRun Code Online (Sandbox Code Playgroud)\n\n我不想在应用正则表达式之前替换所有重音字符,因为文本中的字符应该保持不变:
\n\n“这是我的foo文本,带有qu\xc3\xa9和其他重音字符。”
\n\n并不是
\n\n“这是我的foo文本,带有que和其他重音字符。”
\n我在使用 pickle 加载 pkl 文件时遇到一些问题。我使用的是 Windows 7 和 Python 3.5.1 64 位。pkl 文件是从这里下载的。
这是我的代码:
import pickle
# Load model weights and metadata
weightFile = open('vgg16.pkl', 'rb')
d = pickle.load(weightFile)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到输出
"C:\Program Files\Python35\python.exe" C:/work/lasagne/tutorial/lasagne-tutorial2.py
Traceback (most recent call last):
File "C:/work/lasagne/tutorial/lasagne-tutorial2.py", line 5, in <module>
d = pickle.load(weightFile)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbc in position 1: ordinal not in range(128)
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
这个错误信息是什么意思?它说有一个 acsii 编解码器无法解码的字节,但是 pkl 文件不应该是二进制的(因此不包含 ascii 字符)吗?
我加载文件时做错了什么吗?我可以做什么来修复该错误?
我尝试使用以下代码传递不同的输入,但未能打印消息:"哎呀,你没有输入ASCII字符,更不用说是y或n!" 我输入了不属于char类型的各种Unicode字符(基本上是在ALT +随机数字中打字,例如™,š,²,Ž,±.这些都没有产生错误.cin是否默默地忽略或丢弃不是ASCII字符?
std::cout << "Would you like to play again? Enter y or n: ";
std::cin >> yOrN;
isChar = std::cin.fail();
//check if the user did not enter an ASCII char, e.g. test with a Unicode character
if (isChar)
{
std::cout << "Oops, you did not enter an ASCII char, let alone one that is y or n!\n";
std::cin.clear();
}
Run Code Online (Sandbox Code Playgroud)
操作系统:Windows 10 64位,基于x64的处理器编译器:Visual Studio Community 2015
我无法通过搜索"提取非ASCII字符cin C++"并查看前三页来解决此问题.
我是Stack Overflow的新手,所以如果我违反了这个问题的任何规则或行为准则,请原谅我.我正在learncpp.com上学习C++,我正在编写自己的代码来回答本页面的问题2 .
更新:我想我的程序没有理由验证是否输入了char.但是,我想也许我很好奇地知道我对这项计划是否真的有必要没有太多考虑.
我正在寻找一个包含 ASCII 字符和相同外观的 UTF8 字符的表。我知道这也取决于字体是否看起来相同,但从通用开始就足够了。
>>> # PY3 code:
>>> a='H' # ascii
>>> b='?' # utf8
>>> a==b
False
>>> ' '.join(format(ord(x), 'b') for x in a)
'1001000'
>>> ' '.join(format(ord(x), 'b') for x in b)
'10000011101'
>>> a='P' # ascii
>>> b='?' # utf8
>>> a==b
False
>>> ' '.join(format(ord(x), 'b') for x in a)
'1010000'
>>> ' '.join(format(ord(x), 'b') for x in b)
'1110100001'
Run Code Online (Sandbox Code Playgroud) 我有一个表格,其中包含各种唱片艺术家的姓名。其中之一的名称中带有破折号。如果我运行以下命令:
Select artist
, substring(artist,8,1) as substring_artist
, ascii(substring(artist,8,1)) as ascii_table
, ascii('-') as ascii_dash_key /*The dash key next to zero */
, len(artist) as len_artist
From [dbo].[mytable] where artist like 'Sleater%'
Run Code Online (Sandbox Code Playgroud)
然后返回以下内容。这似乎表明在艺术家列中存储了破折号(ASCII 45)
但是,如果我将where子句更改为:
From [dbo].[mytable] where artist like 'Sleater' + char(45) + '%'
Run Code Online (Sandbox Code Playgroud)
我没有返回任何结果。如果我将artist列的输出复制并粘贴到十六进制编辑器中,则可以看到破折号实际上存储为E2 80 90,即多字节连字符的Unicode字节序列。
因此,我想查找这种情况并用标准的ascii连字符代替,但是我对于使用什么标准来查找这些E2 80 90连字符不知所措?
unicode ×3
php ×2
regex ×2
ascii ×1
c ×1
c++ ×1
character ×1
cin ×1
codeigniter ×1
html ×1
iterm2 ×1
javascript ×1
osx-yosemite ×1
pickle ×1
python-3.5 ×1
sql-server ×1
utf ×1
utf-8 ×1
windows-7 ×1