2013-02-25 2 views
0

내 유니 코드가 내 템플릿에 삽입되어있어 해당 iframe src가 실패하게됩니다.랜덤 유니 코드가 내 밑줄 템플릿에 삽입 됨

문자열은 자바 스크립트 변수에 http://sand-dynamic.adpinr.com/social_stream/p_unit/1204042을 것으로 보인다,하지만

분명히
http://sand-dynamic.adpinr.com%e2%80%ac/social_stream/p_unit/1204042 

로 변신하지만 난 이유를 모르겠어요. 이 변수에 대해 다음을 시도했습니다.

obj.URL = unescape(JSON.parse('"' + TL.getURL() + '/social_stream/p_unit/' + obj.id + '"'); 

그러나 도움이되지 않았습니다. 내 템플릿을 그냥 부름

<iframe frameborder="0" width="<%= width %>" height="<%= height %>" marginheight="0" marginwidth="0" target="_blank" scrolling="no" src="<%= URL %>"></iframe> 

그 여분의 유니 코드를 제거 할 수있는 방법에 대한 의견이 있으십니까? 그것은 브라우저에서 URL로 이동하지 못하게하고 단지 대신 그 URL을 검색합니다. 나는 유니 코드가 처음부터 거기에 어떻게 도착하는지 모르기 때문에 여분의 유니 코드를 동적으로 제거하는 것을 선호한다.

+0

흥미 롭습니다. 도움이된다면 UTF8로 인코딩 된 U + 202C POP DIRECTIONAL FORMATTING입니다. – Kos

답변

0

%e2%80%acU+202C입니다. 어떻게 든 그 캐릭터가 URL 변수에 들어갔습니다. 그 문자는 보이지 않습니다. 변수 값을 출력 할 때 문자열을 볼 수 없지만 문자열이 URL 인코딩 된 경우 문자열을 볼 수 있습니다. 해당 문자를 제거하려면 문자열을 편집해야합니다. 그 가치가 어디에서 오는지 알 수 없기 때문에 더 많은 정보를 제공 할 수 없습니다.

당신이 정말로 비 ASCII 범위의 문자를 제거하려면

, 당신은 항상 이런 식으로 뭔가를 할 수 :

var url = ... 
var strippedURL = ''; 
for (var i = 0, l = url.length; i < l; i++){ 
    if (url.charCodeAt(i) < 256) strippedURL += url[i]; 
} 
return strippedURL; 

이 생각을 해결할 수있는 좋은 방법이 아니다 그. 그 char가 어디에서 왔는지 모를 경우, 그것은 코드에서 수정해야 할 다른 곳의 버그를 가지고 있다는 표시입니다.

+0

이렇게 생각하십니까 url.replace ('% e2 % 80 % ac', ''); 작동 할 것이다? – Evan

+0

@ 에반 내 업데이트 된 답변보기 – loganfsmyth

관련 문제