如何在Angularjs中编码一个字符串?

Posted

技术标签:

【中文标题】如何在Angularjs中编码一个字符串?【英文标题】:How to encode a String in Angularjs? 【发布时间】:2014-11-26 04:16:24 【问题描述】:

我使用 Angularjs 向我的服务器发送一个 get http 请求。服务器使用 Spring MVC 响应休息请求。这是我的 Angular url 构建上的 sn-p 代码:

var name="myname";
var query= "wo?d";
var url = "/search/"+query+"/"+name;

这里是 Spring MVC 控制器:

@RequestMapping( value = "/search/query/name" , method = RequestMethod.GET , produces = MediaType.APPLICATION_JSON_VALUE )
@ResponseBody
public List<Data> search() 

    // search logic

return data;

当查询包含问号字符 (?) 时,我遇到了问题。 url 被拆分,以便 Spring 响应: WARN o.s.web.servlet.PageNotFound - 在 DispatcherServlet 中找不到带有 URI [/my-server/web/search/wo 的 HTTP 请求的映射,名称为“mvc”

这是正确的,因为问号?介绍请求参数的开头。 我尝试使用 js 函数 encodeURI(query) 但问号字符未编码。如何在 url 中编码问号? 谢谢

【问题讨论】:

你们都给出了正确的回应,但 *** 只允许我接受一个。再次感谢您 【参考方案1】:

javascript 具有为此目的的特殊功能encodeURIComponent

encodeURIComponent 转义除以下字符之外的所有字符: 字母,十进制数字, - _ 。 ! ~ * ' ( )

虽然encodeURI 也不编码; , / ? : @ &amp; = + $ # 字符。

【讨论】:

【参考方案2】:

为此使用encodeURIComponent

检查this小提琴。

var a = "wo?d";
alert(encodeURIComponent(a));

对于特定角度的外观this SO 答案。

还有一些问题,然后给我发帖。

【讨论】:

以上是关于如何在Angularjs中编码一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AngularJS 获取用户的邮政编码

如何在angular js中对登录服务进行base64编码

如何自动大写AngularJS输入字段中的第一个字符?

如何在Angularjs中显示文章中的有限字符?

如何在Angularjs中的字符串插值中获得换行符

如何在angularjs中将字符串解析为日期