2017-02-25 105 views
1

我是使用GNU Prolog的新手。GNU Prolog:奇怪的字符

鑑於以下事實:

theme(cafe). 
role(manager). 
role(boss). 
role(coworker). 
numberOfCharacters(theme(cafe), 3). 
charactersRole(numberCharacters(theme(cafe), 3), role('boss'), role('manager'), role('çoworker')). 

當我查詢:

charactersRole(numberCharacters(theme('cafe'), 3), role(X), role(Y), role(Z)). 

它返回一些正確的價值觀,而一個值包含§代替正常字符「C」的。

X = boss 
Y = manager 
Z = 'çoworker' 

謝謝! :)

+1

不需要在''cafe''和其他名字周圍加引號。 – false

回答

2
role('çoworker') 

你有cedilla就在這裏,它被兩個字符誤傳,通常不是通過unicode意識。這不是一個Prolog問題。

§爲Unicode

U+00C3 U+00A7和C是

U+00E7 LATIN SMALL LETTER C WITH CEDILLA 
UTF-8: 0xC3 0xA7 

這就是你通過輸出UTF8 2字節字符爲非UTF8感知LATIN1終端得到什麼。

+0

有沒有其他方法可以實際顯示'c'? –

+0

@MichaelJoshuaRamos使用非Unicode輸入,如果你想要真正的'ç' - 'iconv -f utf-8 -t latin1 file.utf> file.lat'基本上 – alamar

+0

@MichaelJoshuaRamos或c用c替換c,因爲我用c認爲這是你需要的。您可能只是在鍵盤上打錯了按鈕,只需在最後一行重新鍵入「同事」即可。 – alamar