2015년 4월 14일 화요일

[SSRS] URL로 Report 이동시 한글 인코딩 이슈

SSRS에서 일반적인 URL이동시 한글이 포함된 경우는 아무런 문제 없이 링크가 잘 연결된다.

그러나 javascript를 활용해 pop을 띄우게 되면 인코딩 문제가 발생한다.

Case 1. URL로 이동

    특정 개체 > 동작 > URL로 이동 > 링크주소

    아래와 같이 인코딩 이슈 없음


Case 2. URL로 이동(팝업)
    특정 개체 > 동작 > javascript 명령어 입력


    새로운 창이 열리면서 url은 이동되지만 한글이 올바르게 인코딩 되지 못함



    이러한 문제는 다음과 같은 이유로 발생한다.




한글의 경우 ssrs에서는 utf-8로 자동으로 인코딩이 되어 버린다.

이렇게 인코딩 된 값을 이동하고자하는 url 서버가 받아 euc-kr로 디코딩을 진행하게 되면

호환성 충돌로 인해 올바른 값이 return 되지 않는다.

이러한 문제는 아래와 같이 해결할 수 있다.

SSRS내부에서 사용자 함수를 정의해 한글인 경우 euc-kr로 미리 인코딩통해 ssrs에 전달 하게 되면

올바른 값이 return된다.




* 해결

Setp 1. ssrs 내부의 사용자 정의 함수 만들기



 Public Function fn_encode(ByVal strs as String) as String
           Dim byteChr as String
           Dim i as Integer
           Dim strV,temp
           for i=1 to Len(strs)
             byteChr = Cstr(Hex((AscW(Mid(strs,i,1)))))
             If Len(byteChr) = 4 Then
                      temp = "%u" & byteChr
             Else
                     temp = Mid(strs,i,1)
             End If
             strV = strV & temp
           next     
           RETURN strV
End Function

Step 2. URL 링크 입력


="javascript:void(window.open('http://search.naver.com/search.naver?&query=" & code.fn_encode("한글") & "','ViewItemPage'))"

최종 완료된 링크를 클릭하게 되면 아래와 같이 올바른 값이 return 된다.












댓글 없음:

댓글 쓰기

추천 게시물

python: SVD(Singular Value Decomposition)로 간단한 추천시스템 만들기( feat. surprise )

svd_example In [15]: # !pip install surprise In [21]: from...