Изменение пробелов со знаком минус в URL - PullRequest
0 голосов
/ 24 мая 2019

Я борюсь со следующей проблемой: когда пользователь загружает какой-либо объект на сервер, у которого есть свойство, содержащее пробелы или символы, не являющиеся латинскими (например, ლ и т. Д.), Этот объект изначально сохраняется в БД (база данных, которую я использую, поддерживает utf8). кодировка), но проблема в том, что я хочу использовать эти свойства (например, name: საქართველო) в URL, но URL не поддерживает символы utf8. Вы бы сказали, просто замените их, но есть другая проблема: я использую эти свойства в качестве параметров URL на стороне сервера (Expressjs), и если я изменю их как .split(' ').join('-'), это повлияет на мои параметры? если «имя» - это «привет мир», и оно изменилось как «привет мир», это повлияет на результат? в настоящее время пробелы изменены как %20, и это работает. и второй вопрос. как я могу изменить каждый нелатинский символ на латинский (в моем примере q- ქ, w- წ и т. д., но есть также много разных нелатинских алфавитов), если я должен поменять их вручную, или есть некоторые API или что-то еще?

Спасибо!

1 Ответ

1 голос
/ 24 мая 2019

Я думаю, что вы ищете encodeURI()

encodeURL("საქართველო"); 
//returns "%E1%83%A1%E1%83%90%E1%83%A5%E1%83%90%E1%83%A0%E1%83%97%E1%83%95%E1%83%94%E1%83%9A%E1%83%9D"

обновление

for(var i=0; i<str.length; i++){
    var charAtIndex = str[i];
    var encodedCharAtIndex = encodeURI(charAtIndex);

    if(charAtIndex != encodedCharAtIndex){
        //char is non-utf8
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...