It took me a long time to adapt to the new company. Now I am dedicated to service. Many SharePoint problems suddenly emerge, so I am overwhelmed ...... I will write down the solution of these problems later: This plus sign is not a new problem. I encountered a problem raised by many users. The problem occurs when a file or folder is accessed. Either ie crash or the file stored in a folder cannot be opened. These problems are caused by the "+" on the file, folder, or path. "+" Is converted to a space when the client requests a request to the server in the URL. It is a space. For example, you want to access a folder with the name "1 + 2". After conversion, the access address is changed from the original "1 space + 2 space" to "1 space, 2 space ", the result is yes. This folder does not exist. Of course, the contents of this address cannot be accessed, so an error will occur. At present, I suggest you replace or delete the "+" in the path to restore access to the file. Because the SharePoint URL is generated by ourselves, we cannot adjust or modify it by code, so we can only do so. Alternatively, add the method of adding the URL in the HTML of the current page to the dashboard page of SharePoint, and convert "+" to "% 2B ". The method can be referred here: http://sucre.blog.51cto.com/1084905/532231
- Special characters in the URL must be escaped.
-
- 1. Replace space with the plus sign (+)
- 2. The forward slash (/) is used to separate directories and subdirectories.
- 3. Question mark (?) Separate URLs and queries
- 4. Specify special characters for the percent sign (% ).
- 5. # specifying bookmarks
- 6. & # separator Parameters
Causes of escape characters:
If your form is submitted using the get method and the submitted parameters contain special characters such, on the service end, the & parameter is treated as another parameter. For example
The form action is list. JSF? Act = Go & State = 5
Then, request. getparameter can be used to obtain the values of act and state.
If your intention is the act = 'go & State = 5' string, You must escape & to get the exact act value on the server.
Principles of URL escape characters:
Convert these special characters into ASCII codes in the format of % plus the ASCII code, that is, a percent sign %, followed by the ASCII (hexadecimal) value of the corresponding characters. For example, the Space Encoding value is "% 20 ".
- The URL special symbol and the corresponding hexadecimal value encoding:
-
- 1. In the + URL, the plus sign indicates space % 2B
- 2. the space in the space URL can be + or encoded as % 20
- 3./separate directories and subdirectories % 2f
- 4 .? Separate the actual URL and parameter % 3f
- 5.% specify special characters % 25
- 6. # indicates bookmarks % 23
- 7. & separator between parameters specified in URL % 26
- 8. = value of the specified parameter in the URL % 3d
Solution ):
Method 1,Modify the client and replace "+" in the "+" parameter of the client with "+" with "2B %". Then, when the parameter is uploaded to the server, "+" is displayed.
Method 2,Modify the server side and replace the space with "+". This method is only applicable when the parameter contains "+" and no space.
Example:
- String a = reuqest.getParameter("clientStr").replace(' ','+');
If the client is clientstr = test + OK, the value of a is test + OK;
Method 3,Modify the server side, change the method for obtaining parameters from reuqest. getparameter to request. getquerystring (). substring (0), and parse the obtained string.
Example:
- String a =request.getQueryString().substring(0);
If the client is clientstr = test + OK, then the value of A is clientstr = test + OK. You need to parse it again,
A = A. substring (10); The value of A is test + OK.
Appendix:A JavaScript code used to escape special characters in a URL.
- function URLencode(sStr)
- {
- return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
- }