python 列表中无法识别三个特殊的丹麦语元音 æ、ø 和 å
The three special Danish vowels æ, ø and å are not recognized in python list
我正在编写一个程序,旨在帮助儿童和阅读障碍者将单词分成音节。
对于执行此操作的软件,它需要计算给定单词中的所有元音。
我已经编写了代码,如果它们不包含特殊元音,它可以正确划分任何单词。
但是,如果我使用带有丹麦语元音的单词,它不会计算特殊元音,因此该单词不会拆分为正确的音节。
这是我的代码:
#!/usr/bin/env python
-*- coding: utf-8 -*-
import sys
wordGiven = str(sys.argv[1])
vowelsArray = ["a", "e", "i", "o", "u", "y", "æ", "ø", "å"]
vowelsFoundInWord = 0;
counter = 0
for char in wordGiven:
if char in vowelsArray:
vowelsFoundInWord += 1
counter += 1
print vowelsFoundInWord
如果我用 "slået" 这个词输入脚本,它只会打印 1。我该怎么办?
我已经尝试在列表和循环中写入 ord("å"),但随后出现错误:ord() "expected a character, but string of length 2 found".
我应该怎么做才能让它发挥作用?
您使用的是 UTF-8 编码数据,但假设所有字母都只编码为一个字节。当您迭代 wordGiven
时,您迭代的是 字节 ,而不是字符。
您的假设不正确; ASCII 字符集之外的任何内容都需要 2 个或更多字节才能以 UTF-8 编码。对于 å
,这意味着您将获得两个字节:
>>> "å"
'\xc3\xa5'
\xc3
和 \xa5
都没有出现在您的元音列表中。
假设您的输入也是 UTF-8 编码的,您需要将其解码为 Unicode,使用 Unicode 元音,并用它来测试:
wordGiven = unicode(sys.argv[1], 'utf8')
vowelsArray = [u"a", u"e", u"i", u"o", u"u", u"y", u"æ", u"ø", u"å"]
您可能想研究 字节 和 字符 之间的区别,尤其是在编解码器、Unicode 和 Python。我推荐你阅读:
我正在编写一个程序,旨在帮助儿童和阅读障碍者将单词分成音节。 对于执行此操作的软件,它需要计算给定单词中的所有元音。
我已经编写了代码,如果它们不包含特殊元音,它可以正确划分任何单词。 但是,如果我使用带有丹麦语元音的单词,它不会计算特殊元音,因此该单词不会拆分为正确的音节。
这是我的代码:
#!/usr/bin/env python
-*- coding: utf-8 -*-
import sys
wordGiven = str(sys.argv[1])
vowelsArray = ["a", "e", "i", "o", "u", "y", "æ", "ø", "å"]
vowelsFoundInWord = 0;
counter = 0
for char in wordGiven:
if char in vowelsArray:
vowelsFoundInWord += 1
counter += 1
print vowelsFoundInWord
如果我用 "slået" 这个词输入脚本,它只会打印 1。我该怎么办? 我已经尝试在列表和循环中写入 ord("å"),但随后出现错误:ord() "expected a character, but string of length 2 found".
我应该怎么做才能让它发挥作用?
您使用的是 UTF-8 编码数据,但假设所有字母都只编码为一个字节。当您迭代 wordGiven
时,您迭代的是 字节 ,而不是字符。
您的假设不正确; ASCII 字符集之外的任何内容都需要 2 个或更多字节才能以 UTF-8 编码。对于 å
,这意味着您将获得两个字节:
>>> "å"
'\xc3\xa5'
\xc3
和 \xa5
都没有出现在您的元音列表中。
假设您的输入也是 UTF-8 编码的,您需要将其解码为 Unicode,使用 Unicode 元音,并用它来测试:
wordGiven = unicode(sys.argv[1], 'utf8')
vowelsArray = [u"a", u"e", u"i", u"o", u"u", u"y", u"æ", u"ø", u"å"]
您可能想研究 字节 和 字符 之间的区别,尤其是在编解码器、Unicode 和 Python。我推荐你阅读: