更改带有减号的空格

时间:2019-05-24 20:48:44

标签: javascript url character-encoding character

我正为以下问题而苦苦挣扎:当用户将某些对象上载到具有空格或非拉丁字符(例如ლ等)属性的服务器时,该对象最初保存在db中(我正在使用的数据库支持utf8编码),但问题是我想在url中使用该属性(例如名称:საქართველო),但url不支持utf8字符。您可能会说只是替换它们,但是还有另一个问题:我将这些属性用作服务器端(Expressjs)中的url参数,并且如果我像.split(' ').join('-')一样更改它们,会影响我的参数吗?如果“名称”是“ hello world”并且更改为“ hello-world”,会影响结果吗?当前,空格被更改为%20并且可以使用。第二个问题。如何将每个非拉丁字符更改为拉丁字符(在我的示例中为q-ქ,w-წ等,但也有许多不同的非拉丁字母)我应该手动更改它们还是使用一些api或其他东西? >

谢谢!

1 个答案:

答案 0 :(得分:1)

我想你要找的是什么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
    }
}