Base64encoder의 Adobe Flex 문제
-
22-07-2019 - |
문제
다음 코드에서 :
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
'TMP'는 빈 문자열, 즉 길이 0 인 이유가있는 것으로 밝혀졌습니다. 왜? Base64encoder를 사용하여 문자열을 인코딩하는 방법은 무엇입니까?
해결책
코드가 작동하지 않는다고 확신합니까? 방금 복사하여 테스트 앱에 붙여 넣었고 TMP를 'zm9yy2u ='로 반환했습니다.
VAR TMP에 다른 일을하고 있습니까? 디버깅 인 경우 Var TMP : String을 처리했는지 확인하십시오. 출력을 확인할 때 라인 ...
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
creationComplete="but1.label = encodeit()">
<mx:Script>
<![CDATA[
import mx.utils.Base64Encoder;
private function encodeit(): String {
var benq:Base64Encoder = new Base64Encoder();
benq.encode("force",0,5);
var tmp:String = benq.toString();
return tmp;
}
]]>
</mx:Script>
<mx:Button
id="but1"
width="100"
height="100"
/></mx:Application>
다른 팁
새로운 기능인 것처럼 Flex 3을 사용하고 있습니까? 또한 EncodeBytes를 사용하고 EncodeUtfBytes를 사용하여 바이트로 인코딩 해보십시오. 아마도 이들은 더 잘 작동합니다.
온라인 참조를 사용할 수 있습니다 Adobe에서, 그러나 나는 당신이 그것을 알고 있다고 생각합니다.
좋아, 작동 중입니다. 내가 게시 한 코드는 실제로 사용하는 것과 다릅니다. Base64encoder를 위해 Tostring ()을 호출하면 내부 버퍼가 제거된다는 사실을 건너 뛰었습니다. 따라서 다음 번에 전화하면 빈 문자열이 반환됩니다. 문제를 일으켜서 미안 해요.
제휴하지 않습니다 StackOverflow