问题描述
我现在正在做一个项目,需要同时支持中文,英文,法文,我写了一个方法CultureHelper.GetCultureValueByName(name)这个方法会读取cookie的culture值,判断当前是中文,英文还是法文,然后根据name返回对应的value,目前中英文都运行正常,但是有些法文单词显示有问题,例如:mémo(s)如果是显示在html里面,那是正常的,例如(采用的是razor引擎)<p>CultureHelper.GetCultureValueByName("lbMemos")</p>//显示"mémo(s)"如果是在javascript里面,显示就不正常alert('@CultureHelper.GetCultureValueByName("lbMemos")')//显示成"mémo(s)"如果我在@CultureHelper外面加一层@html.Raw,那就显示正常了,问题是页面太多,不可能一处一处改,最好是能在GetCultureValueByName方法里面改。源代码:classResxCultureManager:ICultureManager{publicstringGetCultureValueByName(stringname){//判断是否设置了当前语言boolhasNotSetSpecialCulture=(HttpContext.Current.Request.Cookies["_culture"]==null)||(string.IsNullOrEmpty(HttpContext.Current.Request.Cookies["_culture"].Value));//如果没设置就返回英文的CultureInfoculture=hasNotSetSpecialCulture?newCultureInfo(CultureHelper.DefaultCultureAbbreviation):newCultureInfo(CultureHelper.GetCultureAbbreviation(HttpContext.Current.Request.Cookies["_culture"].Value));stringcultureString=Resources.Resources.ResourceManager.GetString(name,culture);returncultureString;}}