我需要决定是否在Web GUI中渲染几何符号(例如按钮,菜单等的箭头和三角形)作为Unicode符号(更容易和颜色无关)或GIF/PNG文件(我想要很多麻烦)避免).
但是,我看到客户端无法显示甚至声明为unicode字符的高级标点符号(示例).
有没有人知道OSs/Service Packs/Applications上的哪个版本附带了Unicode版本的标准字体?例如,微软的Arial unicode自1999年开始随Office一起提供,但是我没有安装办公室,而且我的Arial至少还有一些Unicode范围.
另外,Mac OS和Linux的情况如何?
有人能指出我有关这方面的一些综合资源 - 报告,清单,概述吗?
可能重复:
如何grep UNIX中的非ASCII字符
我正在努力寻找一个如何在一个非常大的xml数据文件中找到非ascii字符的答案.我不想转换非ascii字符,我只想确定字符所在的数据文件中的位置,以便我可以通知源删除该值.非ascii数据(似乎是单个字符)导致我的处理程序失败.不幸的是,错误数据无法帮助我确定有问题的字符在文件中的位置.此XML数据文件包含数据记录,很可能位于描述字段或名称字段中.
我曾尝试使用文本工具,但它是一个如此庞大的文件(> 32MB)的文本,它是压倒性的.有没有办法在像PSPad或TextPad这样的工具中运行REGEX来查找7-BIT ASCII字符集之外的任何字符?
我正在使用jquery.highlight插件:http://code.google.com/p/gce-empire/source/browse/trunk/jquery.highlight.js? r = 2
我用它来突出显示搜索结果.
问题是,如果我搜索"café"这样的东西,它就不会突出显示任何单词.
如果我搜索"咖啡馆",即使我的结果包含"咖啡馆"和"咖啡馆",它也只会突出"咖啡馆".
因此,我需要突出显示所有单词的"版本",无论是否有变音符号.
那可能吗?
我想在WinGHCi中输出非ascii字符,但这是我得到的:
Prelude> "?"
"\948"
Prelude> putStr "\948"
*** Exception: <stdout>: hPutChar: invalid argument (character is not in the code page)
Run Code Online (Sandbox Code Playgroud)
我在Windows XP上使用WinGHCi 7.0.3.我有什么办法让WinGHCi打印出一个漂亮的小三角洲?
我有一个有趣的问题,处理LINQ到实体中的8位"ASCII"字符,我希望有人可以给我一个提示.
我继承了一个SQL Server 2000数据库,它有一些伪加密列,它们只是对字符串进行异或0xFF.不知道为什么,我知道它是蹩脚的,但那就是我们现在所处的位置.
这些列是SQL数据类型char(7)和char(14).使用XOR时,0xFF在每种情况下都会设置第8位,因此最终会得到非ASCII(通过Microsoft的定义)字符.似乎在这里指出了UTF-8,但是解码变得混乱了.
我能够读取和解码这些字符串如下:
String.byte[]使用System.Text.Encoding.GetEncoding(1252).GetBytes()0xFFSystem.Text.Encoding.GetEncoding(1252).GetString()这非常有效.
我遇到的问题是我似乎无法使用LINQ将ENCODED字符串放回SQL Server.
我基本上遵循相反的过程并且正在做:
ASCIIEncoding.GetBytes().(此处不需要CodePage 1252,因为这是一个直字符串.)0xFF.GetEncoding(1252).GetString().如果我看看我的字符串,这正是我所期待的.但是,如果我在我的实体中填充并SaveChanges()在SQL Server中执行结果值总是"?????"有一定的长度.
我确定我在这里遗漏了一些东西,但我已经尝试了所有我能想到的东西,却无法得到它.现在我只是回到了使用a SqlCommand和使用编码字符串进行UPDATE 的老式方法SqlParameters.没问题,每次都有效.
在此先感谢您的任何帮助.
更新:
我尝试了JamieSee的建议,我甚至没有用他的方法得到很好的解码.我有:
static void Main(string[] args)
{
Encoding characterEncoding = Encoding.GetEncoding(28591);
HCBPWEBEntities ent = new HCBPWEBEntities();
var encUser =
(from users in ent.tblEmployer
where users.ipkEmpId == 357
select …Run Code Online (Sandbox Code Playgroud) 除了Python,我需要这个问题的解决方案!我已经尝试为Python安装regex库,因为显然可以在Python的正则表达式中使用POSIX表达式,但是我猜它在[:alpha:]类中不包含Unicode字符.例如:
>>> re.search(r'[[:alpha:] ]+','Please work blåbær and NOW stop 123').group(0)
'Please work bl'
Run Code Online (Sandbox Code Playgroud)
当我希望它匹配 Please work blåbær and NOW stop
编辑:我使用的是Python 2.7
编辑2:我尝试了以下内容:
>>> re.search(re.compile('[\w ]+', re.UNICODE),'Please work blåbær and NOW stop 123').group(0)
'Please work bl\xc3'
Run Code Online (Sandbox Code Playgroud)
不是我想要的(我想在第一个非ASCII字符之后匹配部分),但至少它在字符上比以前更匹配.我应该在这做什么才能让它与我想要的其他东西相匹配?
编辑3:我不想匹配任何非"单词"字符; "word"是指az,AZ,space和单词字符的任何重音变体.我希望我得到了我的想法; 在一个短语中
lets match força, but stop before that comma
Run Code Online (Sandbox Code Playgroud)
我想只匹配 lets match força
编辑4:所以我尝试将Python 3用于这个脚本:
>>> re.search(re.compile('[\w ]+', re.UNICODE),'lets match força, but stop before that comma').group(0)
'lets match força'
Run Code Online (Sandbox Code Playgroud)
我猜它在Python 3中大部分都有用,除了它还匹配数字(我绝对不想要)和下划线.有什么方法可以解决这个问题,在Python …
我遇到了一个我以前从未见过的新问题:我的客户端正在将文件添加到我们构建的项目中,并且一些文件名中包含特殊字符,因为有些字是西班牙语.
例如,我正在测试的文件中有一个á.我在css文件中将该图像称为背景图像,但在Safari中它不显示.但它确实在FF和Chrome上.
作为测试,我将链接粘贴到浏览器和同样的事情.适用于FF和Chrome,但Safari会抛出错误.所以语言字符是我猜的吗?
Firefox转换以下网址并将á更改为%CC%81并加载图像.
http://www.themediacouncil.com/test/nonascii/LA-MAR_Cebiche -Clássico_foto -恩里克-庇隆,470x120-1371827671.jpg
你可以看到它突破......但FF和Chrome将其转换为:http: //www.themediacouncil.com/test/nonascii/LA-MAR_Cebiche-Cla%CC%81ssico_foto-Henrique-Peron-470x120-1371827671.jpg
你也可以在这里看到这个:http://jsfiddle.net/Md4gZ/2/
.testbox {
width:340px;
height:100px;
background:url('http://www.themediacouncil.com/test/nonascii/LA-MAR_Cebiche-Clássico_foto-Henrique-Peron-470x120-1371827671.jpg') no-repeat top left;
}
所以最正确的方法来解决这个问题.我正在开发PHP和WORDPRESS.我宁愿不必告诉客户回去并用特殊字符替换所有文件.
任何帮助表示赞赏.谢谢!
我得到(例如)两个字符串:
$a = "joao";
$b = "joão";
if ( strtoupper($a) == strtoupper($b)) {
echo $b;
}
Run Code Online (Sandbox Code Playgroud)
我希望即使重音也是如此.但是我需要它忽略重音而不是替换因为我需要它来回应"joão"而不是"joao".
我见过的所有答案都将"ã"替换为"a"而不是将比较设为真.我一直在阅读关于它的正常化,但我也无法使其正常工作.有任何想法吗?谢谢.
对于有国际支持的网站,我在大多数表格和列中使用utf8mb4字符集和utf8mb4_unicode_ci排序规则.性能不是最重要的,各种语言的准确排序很重要.
我理解utf8mb4_general_ci和utf8mb4_unicode_ci排序规则如何与重音字符进行比较,即:
SELECT column FROM table WHERE column='abad';
Run Code Online (Sandbox Code Playgroud)
将返回'abad'和'abád'
在研究MySQL中的utf8支持时,我遇到了非二进制utf8___校对的假设问题.http://mzsanford.com/blog/mysql-and-unicode/上的页面描述了在某些更新中未保存更改的问题.他说'在更新记录时,似乎MySQL(或至少InnoDB)在更新记录之前检查是否相等.由于整数版本认为只有重音更改是相同的,因此MySQL会跳过写入(这会节省I/O开销)并返回成功,因为它认为它优化了写入而不是失败."
我将其解释为:如果您尝试更新仅在字段的重音符号中进行更改的记录,则它将无法正确更新(因为MySQL认为它已经匹配).但我无法复制这个.我创建了一个简单的测试用例:
CREATE DATABASE test_utf8
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE test_utf8;
CREATE TABLE test (
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
text VARCHAR(300) NOT NULL,
PRIMARY KEY (id)
) ENGINE = INNODB;
INSERT INTO test (text) VALUES ('abád');
UPDATE test SET text='abad' WHERE id=1;
Run Code Online (Sandbox Code Playgroud)
但是,这会正确更新值(尽管只有一个字符的重音更改).这可能只是旧版MySQL中的一个问题吗?或者这个问题是否会在略有不同的情况下出现?
如果你有时间阅读我关于这个主题的一些概念的一些说明,看看我是否有任何误解,我也将不胜感激.如果它没有错误,也许它对某人来说是有用的信息.
MySQL的utf8字符集不提供真正的utf8支持,因为字符只有1-3个字节.要获得真正的utf8支持,您可能需要使用utf8mb4.
一般来说,utf8mb4_unicode_ci在语言适当的排序方面会更准确,但与使用utf8mb4_general_ci相比,会有轻微的性能损失.
如果某些列不需要排序,并且将使用比较/相等检查,则应使用utf8mb4_bin,因为它会稍快一些.
在utf8mb4_general_ci和utf8mb4_unicode_ci排序规则中,重音字符被视为相等.因此,对于必须具有唯一值(例如主键)的列,这是一个错误的排序规则选择.在这种情况下,应该使用utf8mb4_bin.如果一个字段需要具有唯一性的重音感知,但也需要在某个时候进行语言排序,它可以存储为utf8mb4_bin,并且您可以在排序时在查询中使用collate子句.例如:
SELECT column FROM table ORDER BY column COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
这将导致排序语言排序,尽管其内部存储在二进制排序规则中.这将影响性能,因为字段的整理决定了它的索引方式.查询的性能差异类似于对未索引列与索引列进行排序时的性能差异.
默认情况下,utf8mb4_unicode_ci或utf8mb4_general_ci排序规则下的搜索不会重音,因此搜索'abad'会返回'abad'和'abád'.因此,如果您需要重音感知搜索,则必须将列的排序规则设置为utf8mb4_binary(如果所有搜索都是重音敏感的)或在查询中使用collate子句(如果您希望大多数搜索都是重音盲).由于utf8mb4_bin排序规则区分大小写,因此如果您需要不区分大小写但需要重音的搜索,则还需要修改查询.例如(假设您的搜索词已经在服务器端脚本语言中变成小写):
(Assuming the data is stored with a …Run Code Online (Sandbox Code Playgroud) 我试图在unix中的数据文件中找出不可打印的字符.代码:
#!/bin/ksh
export SRCFILE='/data/temp1.dat'
while read line
do
len=lenght($line)
for( $i = 0; $i < $len; $i++ ) {
if( ord(substr($line, $i, 1)) > 127 )
{
print "$line\n";
last;
}
done < $SRCFILE
Run Code Online (Sandbox Code Playgroud)
代码无效,请帮我解决上述问题.