iconv дает “Запрещенный символ” с умными кавычками — как избавиться от них?

def main():

drinks = ["Johnnie Walker", "Jose Cuervo", "Jim Beam", "Jack Daniels,"]
booze = [1, 2, 3, 4, 5]
num_drinks = []
x = 0
for i in booze:

    if x < len(drinks):

        num_drinks.append(drinks[x])
        num_drinks.append(booze[x])

        x += 1

    else:

        print(num_drinks)

return

main ()

7
задан Andrew Swift 28 May 2009 в 17:15
поделиться

3 ответа

Что вы подразумеваете под "дружественным к ссылкам"? Единственный способ, который имеет для меня смысл, поскольку текст между тегами ... может быть любым, на самом деле "дружественен к URL", подобно URL-адресам SO, где все преобразовано в [az -] .

Если это то, что вам нужно, вам понадобится библиотека транслитерации, а не библиотека преобразования набора символов. (Раньше мне не удавалось заставить iconv () выполнять эту работу, но я давно не пробовал.) Есть бета-расширение PHP translit , которое , вероятно, выполняет эту работу. .

Если вы не можете добавить расширения к своей установке PHP, вам придется искать библиотеку PHP, которая делает то же самое. Я не использовал это, Если ответ ephemient правильный, ошибка iconv, которую вы видите, вполне может быть вызвана отсутствием прямого представления символа в целевом наборе символов. Так что, забудь.)

Если ответ ephemient правильный, ошибка iconv, которую вы видите, вполне может быть вызвана отсутствием прямого представления символа в целевом наборе символов. Так что, забудь.)

2
ответ дан 7 December 2019 в 05:30
поделиться

Рассматривали ли вы возможность использования строковой функции MySQL REPLACE , чтобы заменить ошибочные строки на апострофы или что-то еще? Вы можете составить часть «строка для замены», например, используя CONCAT для CHAR вызовов ...

0
ответ дан 7 December 2019 в 05:30
поделиться

Glibc (и GNU libiconv ) поддерживает суффиксы // TRANSLIT и // IGNORE .

Таким образом, в Linux это работает нормально:

$ echo $'\xe2\x80\x99'
’
$ echo $'\xe2\x80\x99' | iconv -futf8 -tiso8859-1
iconv: illegal input sequence at position 0
$ echo $'\xe2\x80\x99' | iconv -futf8 -tiso8859-1//translit
'

Я не уверен, что iconv используется PHP, но в документации подразумевается, что // TRANSLIT и // IGNORE тоже будет работать.

6
ответ дан 7 December 2019 в 05:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: