Rev 3080 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2007,2014 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: Feb 19, 2008
*/
package uk.me.parabola.imgfmt.app.labelenc;
import java.io.UnsupportedEncodingException;
import java.util.Locale;
/**
* Encoder for labels in utf-8.
*
* @author Steve Ratcliffe
*/
public class Utf8Encoder
extends BaseEncoder
implements CharacterEncoder
{
public EncodedText encodeText
(String text
) {
if (text ==
null || text.
isEmpty())
return NO_TEXT
;
String uctext
;
if (isUpperCase
())
uctext = text.
toUpperCase(Locale.
ENGLISH);
else
uctext = text
;
EncodedText et
;
try {
byte[] buf = uctext.
getBytes("utf-8");
byte[] res =
new byte[buf.
length +
1];
System.
arraycopy(buf,
0, res,
0, buf.
length);
res
[buf.
length] =
0;
et =
new EncodedText
(res, res.
length, uctext.
toCharArray());
} catch (UnsupportedEncodingException e
) {
// As utf-8 must be supported, this can't happen
byte[] buf = uctext.
getBytes();
et =
new EncodedText
(buf, buf.
length, uctext.
toCharArray());
}
return et
;
}
}