我遇到了一個非常奇怪的問題,轉換爲兩個「相同」字符串的大寫字母。該程序正在讀取來自網站的行,並將其與存儲在文本文件中的行進行比較。如果找不到該行,則將其添加到文件的末尾。除非行中包含特殊字符,否則此功能將完美工作出於某種原因,比較結果不匹配。我比較兩個字符串,先將它們轉換爲大寫字母,這就是它出錯的地方。以下是一些代碼。我省略了填充兩個變量的部分。我只是展示了怪異的部分。(看起來)相同的字符串轉換爲大寫不同
print "$pageLine <-> $dbLine\n";
print uc($pageLine) . " <-> " . uc($dbLine) . "\n";
這導致
Diëtisten <-> Diëtisten
DIëTISTEN <-> DIËTISTEN
請注意,在第一E不轉換爲大寫。
foreach my $kar (split(//, $pageLine)) {
print ord($kar) . ":";
}
print "\n";
foreach my $kar (split(//, $dbLine)) {
print ord($kar) . ":";
}
print "\n";
這導致:
68:105:235:116:105:115:116:101:110:32:40:78:86:68:41:
68:105:235:116:105:115:116:101:110:32:40:78:86:68:41:
任何人有任何想法是怎麼回事?
在此先感謝。
http://perldoc.perl.org/functions/fc.html也可能是一個很好的閱讀。 – simbabque