本人的第一遍。SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法


最近在SHAREPOINT项目中遇到了一个SHAREPOINT文档库中的BUG(自认为是):在选择文档库中的文档,并想将其以邮件形式发送文档URL时,会有乱码的出现。

 如图:

SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法 


刚开始认为是 SHAREPOINT 管理中心 > 应用程序管理 > Web 应用程序传出电子邮件设置字符集设置的问题。调整后依然不能解决问题。

经过分析发现CORE.js文件中function AddSendSubMenu(m,ctx) 方法并没有对其进行URL编码。

问题就应该出在这行语句:fileUrl=httpRootWithSlash.substr(0, slashLoc)+currentItemUrl; (Core.js文件中第3294行)


进行如下更改:

A、在MasterPage中加入VB脚本

SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法<script language="vbscript">
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法Function str2asc(strstr) 
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法 str2asc 
= hex(asc(strstr)) 
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法End Function 
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法Function asc2str(ascasc) 
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法 asc2str 
= chr(ascasc) 
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法End Function
SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法
</script> SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法


B、在Core.js文件中AddSendSubMenu方法的下面紧跟着加入下面的方法

}


C、将行:fileUrl=httpRootWithSlash.substr(0, slashLoc)+currentItemUrl;

  替换为:fileUrl=escapeProperly(httpRootWithSlash.substr(0, slashLoc))+UrlEncode(currentItemUrl);

  保存JS文件后,重新刷新页面可以对中文URL进行编码。

SHAREPOINT2007 文档库中通过EMAIL发送文档URL为乱码的解决方法

 

本文有诸多不合理之处请高人指出。

相关文章:

  • 2021-08-19
  • 2021-08-24
  • 2021-06-16
  • 2021-08-20
  • 2021-10-19
  • 2022-12-23
  • 2021-05-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-19
  • 2021-11-23
  • 2022-12-23
  • 2021-12-21
  • 2021-05-31
相关资源
相似解决方案