📄 use.txt
字号:
Base64 is a freeware way of encoding 8-bit characters using
only ASCII printable characters similar to UUENCODE.
UUENCODE embeds a filename where BASE64 does not. You will
see BASE64 used in encoding digital certificates, in
encoding user:password string in an Authorization: header
for HTTP. The spec is described in RFC 2045.
For more details see http://mindprod.com/jgloss/base64.html
Don't confuse Base64 with x-www-form-urlencoded which
is handled by java.net.URLEncoder.encode/decode or
Base64u.
Base64 armouring uses only the characters A-Z a-z 0-9 +/=.
This makes it suitable for encoding binary data as SQL
strings, that will work no matter what the encoding.
Unfortunately + / and = all have special meaning in URLs.
Base64u gets around this problem. It is a variant on Base64
that uses - _ and * in preference to + / and =, so that it
can be used in URLEncoded contexts with or without
URLEncoding.
Use base64 like this:
// Base64 armouring
import com.mindprod.base64.Base64;
...
// sample byte array to encode
byte[] toSend = { (byte)0xfc, (byte)0x0f, (byte)0xc0};
// create encoder object
Base64 base64 = new Base64();
base64.setLineLength( 72 ); // default
// encoding a byte[]
String send = base64.encoder( toSend );
// decoding a byte[]
byte[] reconstituted = base64.decoder( sent );
use Base64u the same way:
// Base64u armouring
import com.mindprod.base64.Base64u;
...
// sample byte array to encode
byte[] toSend = { (byte)0xfc, (byte)0x0f, (byte)0xc0};
// create encoder object
Base64u base64u = new Base64u();
base64u.setLineLength( 72 ); // default
// encoding a byte[]
String send = base64u.encoder( toSend );
// decoding a byte[]
byte[] reconstituted = base64u.decoder( sent );
For an example that starts and ends with a String, see
Example.java
to run:
java.exe com.mindprod.base64.Example
If your data are too large to encode as one byte array you
need to encode in chunks, keeping in mind that Base64 is a
scheme where 3 bytes are concatenated, then split to form 4
groups of 6-bits each; and each 6-bits gets translated to an
encoded printable ASCII character, via a table lookup.
You must encode groups of 3 bytes together to get 4
chars and decode groups of 4 chars together to get three
bytes without a split over a buffer boundary.
One easy way of ensuring that is to make sure all buffers
are a multiple of 12 long.
Version History
1.4 now gets all the lines the same
length. It allows you to configure the line
separator. It now needs a constructor with
instance methods.
1.5 adds Base64u encoding.
1.7 adds an Example, and has the code up to Intellij
code inspector snuff.
1.8 tidies code.
1.9 2007-05-20 adds pad and icon.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -