Changeset 9bd87ab


Ignore:
Timestamp:
Aug 31, 2005 9:50:23 AM (15 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
b43114f
Parents:
b6ea55f
git-author:
jrandom <jrandom> (08/31/05 09:50:23)
git-committer:
zzz <zzz@…> (08/31/05 09:50:23)
Message:

make it work with any host charset or content charset

Files:
1 added
29 edited

Legend:

Unmodified
Added
Removed
  • apps/syndie/java/src/net/i2p/syndie/Archive.java

    rb6ea55f r9bd87ab  
    7171                        } else {
    7272                            System.err.println("Invalid blog (but we're storing it anyway): " + bi);
     73                            new Exception("foo").printStackTrace();
    7374                            info.add(bi);
    7475                        }
     
    105106        if (!info.verify(_context)) {
    106107            System.err.println("Not storing the invalid blog " + info);
     108            new Exception("foo!").printStackTrace();
    107109            return false;
    108110        }
     
    162164            try {
    163165                File entryDir = getEntryDir(entries[j]);
    164                 if (!entryDir.exists()) {
     166                EntryContainer entry = null;
     167                if (entryDir.exists())
     168                    entry = getCachedEntry(entryDir);
     169                if ( (entry == null) || (!entryDir.exists()) ) {
    165170                    if (!extractEntry(entries[j], entryDir, info)) {
    166171                        System.err.println("Entry " + entries[j].getPath() + " is not valid");
     172                        new Exception("foo!!").printStackTrace();
    167173                        continue;
    168174                    }
     175                    entry = getCachedEntry(entryDir);
    169176                }
    170                 EntryContainer entry = getCachedEntry(entryDir);
    171177                String tags[] = entry.getTags();
    172178                for (int t = 0; t < tags.length; t++) {
     
    203209   
    204210    private EntryContainer getCachedEntry(File entryDir) {
    205         return new CachedEntry(entryDir);
     211        try {
     212            return new CachedEntry(entryDir);
     213        } catch (IOException ioe) {
     214            ioe.printStackTrace();
     215            File files[] = entryDir.listFiles();
     216            for (int i = 0; i < files.length; i++)
     217                files[i].delete();
     218            entryDir.delete();
     219            return null;
     220        }
    206221    }
    207222   
     
    234249                    // no key, cache.
    235250                    File entryDir = getEntryDir(entries[i]);
    236                     if (!entryDir.exists()) {
     251                    if (entryDir.exists())
     252                        entry = getCachedEntry(entryDir);
     253                    if ((entry == null) || !entryDir.exists()) {
    237254                        if (!extractEntry(entries[i], entryDir, info)) {
    238255                            System.err.println("Entry " + entries[i].getPath() + " is not valid");
     256                            new Exception("foo!!!!").printStackTrace();
    239257                            continue;
    240258                        }
    241                     }
    242                     entry = getCachedEntry(entryDir);
     259                        entry = getCachedEntry(entryDir);
     260                    }
    243261                } else {
    244262                    // we have an explicit key - no caching
     
    248266                    if (!ok) {
    249267                        System.err.println("Keyed entry " + entries[i].getPath() + " is not valid");
     268                        new Exception("foo!!!!!!").printStackTrace();
    250269                        continue;
    251270                    }
     
    390409        _index = ArchiveIndexer.index(_context, this);
    391410        try {
    392             PrintWriter out = new PrintWriter(new FileWriter(new File(_rootDir, INDEX_FILE)));
    393             out.println(_index.toString());
     411            FileOutputStream out = new FileOutputStream(new File(_rootDir, INDEX_FILE));
     412            out.write(DataHelper.getUTF8(_index.toString()));
    394413            out.flush();
    395414        } catch (IOException ioe) {
  • apps/syndie/java/src/net/i2p/syndie/ArchiveIndexer.java

    rb6ea55f r9bd87ab  
    2525        if (headerFile.exists()) {
    2626            try {
    27                 BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(headerFile)));
     27                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(headerFile), "UTF-8"));
    2828                String line = null;
    2929                while ( (line = in.readLine()) != null) {
     
    8080                    if (!tags.containsKey(entryTags[t])) {
    8181                        tags.put(entryTags[t], new TreeMap());
     82                        //System.err.println("New tag [" + entryTags[t] + "]");
    8283                    }
    8384                    Map entriesByTag = (Map)tags.get(entryTags[t]);
  • apps/syndie/java/src/net/i2p/syndie/BlogManager.java

    rb6ea55f r9bd87ab  
    8888                String name = (String)iter.next();
    8989                if (name.startsWith("syndie."))
    90                     out.write((name + '=' + _context.getProperty(name) + '\n').getBytes());
     90                    out.write(DataHelper.getUTF8(name + '=' + _context.getProperty(name) + '\n'));
    9191            }
    9292        } catch (IOException ioe) {
     
    182182   
    183183    public String login(User user, String login, String pass) {
    184         File userFile = new File(_userDir, Base64.encode(_context.sha().calculateHash(login.getBytes()).getData()));
     184        Hash userHash = _context.sha().calculateHash(DataHelper.getUTF8(login));
     185        Hash passHash = _context.sha().calculateHash(DataHelper.getUTF8(pass));
     186        File userFile = new File(_userDir, Base64.encode(userHash.getData()));
    185187        System.out.println("Attempting to login to " + login + " w/ pass = " + pass
    186188                           + ": file = " + userFile.getAbsolutePath() + " passHash = "
    187                            + Base64.encode(_context.sha().calculateHash(pass.getBytes()).getData()));
     189                           + Base64.encode(passHash.getData()));
    188190        if (userFile.exists()) {
    189191            try {
    190192                Properties props = new Properties();
    191                 BufferedReader in = new BufferedReader(new FileReader(userFile));
     193                FileInputStream fin = new FileInputStream(userFile);
     194                BufferedReader in = new BufferedReader(new InputStreamReader(fin, "UTF-8"));
    192195                String line = null;
    193196                while ( (line = in.readLine()) != null) {
     
    217220    public void saveUser(User user) {
    218221        if (!user.getAuthenticated()) return;
    219         String userHash = Base64.encode(_context.sha().calculateHash(user.getUsername().getBytes()).getData());
     222        String userHash = Base64.encode(_context.sha().calculateHash(DataHelper.getUTF8(user.getUsername())).getData());
    220223        File userFile = new File(_userDir, userHash);
    221         FileWriter out = null;
    222         try {
    223             out = new FileWriter(userFile);
    224             out.write(user.export());
     224        FileOutputStream out = null;
     225        try {
     226            out = new FileOutputStream(userFile);
     227            out.write(DataHelper.getUTF8(user.export()));
    225228        } catch (IOException ioe) {
    226229            ioe.printStackTrace();
     
    230233    }
    231234    public String register(User user, String login, String password, String registrationPassword, String blogName, String blogDescription, String contactURL) {
     235        System.err.println("Register [" + login + "] pass [" + password + "] name [" + blogName + "] descr [" + blogDescription + "] contact [" + contactURL + "]");
     236        System.err.println("reference bad string: [" + EncodingTestGenerator.TEST_STRING + "]");
    232237        String hashedRegistrationPassword = getRegistrationPassword();
    233238        if (hashedRegistrationPassword != null) {
    234             if (!hashedRegistrationPassword.equals(Base64.encode(_context.sha().calculateHash(registrationPassword.getBytes()).getData())))
    235                 return "Invalid registration password";
    236         }
    237         String userHash = Base64.encode(_context.sha().calculateHash(login.getBytes()).getData());
     239            try {
     240                if (!hashedRegistrationPassword.equals(Base64.encode(_context.sha().calculateHash(registrationPassword.getBytes("UTF-8")).getData())))
     241                    return "Invalid registration password";
     242            } catch (UnsupportedEncodingException uee) {
     243                return "Error registering";
     244            }
     245        }
     246        String userHash = Base64.encode(_context.sha().calculateHash(DataHelper.getUTF8(login)).getData());
    238247        File userFile = new File(_userDir, userHash);
    239248        if (userFile.exists()) {
     
    241250        } else {
    242251            BlogInfo info = createBlog(blogName, blogDescription, contactURL, null);
    243             String hashedPassword = Base64.encode(_context.sha().calculateHash(password.getBytes()).getData());
    244             FileWriter out = null;
     252            String hashedPassword = Base64.encode(_context.sha().calculateHash(DataHelper.getUTF8(password)).getData());
     253            FileOutputStream out = null;
    245254            try {
    246                 out = new FileWriter(userFile);
    247                 out.write("password=" + hashedPassword + "\n");
    248                 out.write("blog=" + Base64.encode(info.getKey().calculateHash().getData()) + "\n");
    249                 out.write("lastid=-1\n");
    250                 out.write("lastmetaedition=0\n");
    251                 out.write("addressbook=userhosts-"+userHash + ".txt\n");
    252                 out.write("showimages=false\n");
    253                 out.write("showexpanded=false\n");
     255                out = new FileOutputStream(userFile);
     256                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
     257                bw.write("password=" + hashedPassword + "\n");
     258                bw.write("blog=" + Base64.encode(info.getKey().calculateHash().getData()) + "\n");
     259                bw.write("lastid=-1\n");
     260                bw.write("lastmetaedition=0\n");
     261                bw.write("addressbook=userhosts-"+userHash + ".txt\n");
     262                bw.write("showimages=false\n");
     263                bw.write("showexpanded=false\n");
     264                bw.flush();
    254265            } catch (IOException ioe) {
    255266                ioe.printStackTrace();
     
    298309            if ( (entryHeaders != null) && (entryHeaders.trim().length() > 0) ) {
    299310                System.out.println("Entry headers: " + entryHeaders);
    300                 BufferedReader userHeaders = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(entryHeaders.getBytes())));
     311                BufferedReader userHeaders = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(DataHelper.getUTF8(entryHeaders)), "UTF-8"));
    301312                String line = null;
    302313                while ( (line = userHeaders.readLine()) != null) {
     
    315326            raw.append(sml);
    316327           
    317             EntryContainer c = new EntryContainer(uri, tagList, raw.toString().getBytes());
     328            EntryContainer c = new EntryContainer(uri, tagList, DataHelper.getUTF8(raw));
    318329            if ((fileNames != null) && (fileStreams != null) && (fileNames.size() == fileStreams.size()) ) {
    319330                for (int i = 0; i < fileNames.size(); i++) {
     
    398409        // no need to quote user/location further, as they've been sanitized
    399410       
    400         FileWriter out = null;
     411        FileOutputStream out = null;
    401412        try {
    402413            File userHostsFile = new File(user.getAddressbookLocation());
     
    404415            if (knownHosts.containsKey(name)) return "Name is already in use";
    405416       
    406             out = new FileWriter(userHostsFile, true);
    407             out.write(name + "=" + location + '\n');
     417            out = new FileOutputStream(userHostsFile, true);
     418            out.write(DataHelper.getUTF8(name + "=" + location + '\n'));
    408419            return "Address " + name + " written to your hosts file (" + userHostsFile.getName() + ")";
    409420        } catch (IOException ioe) {
  • apps/syndie/java/src/net/i2p/syndie/CLI.java

    rb6ea55f r9bd87ab  
    117117            try {
    118118                File f = File.createTempFile("syndie", ".html");
    119                 Writer out = new FileWriter(f);
     119                Writer out = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
    120120                renderer.render(null, mgr.getArchive(), entry, out, summaryOnly, showImages);
    121121                out.flush();
  • apps/syndie/java/src/net/i2p/syndie/CachedEntry.java

    rb6ea55f r9bd87ab  
    2222    private Attachment _attachments[];
    2323   
    24     public CachedEntry(File entryDir) {
     24    public CachedEntry(File entryDir) throws IOException {
    2525        _entryDir = entryDir;
    2626        importMeta();
     
    108108        BufferedReader in = null;
    109109        try {
    110             in = new BufferedReader(new FileReader(propsFile));
     110            in = new BufferedReader(new InputStreamReader(new FileInputStream(propsFile), "UTF-8"));
    111111            String line = null;
    112112            while ( (line = in.readLine()) != null) {
     
    153153                    int read = DataHelper.read(in, buf);
    154154                    if (read != buf.length) throw new IOException("read: " + read + " file size: " + buf.length + " for " + f.getPath());
    155                     _text = new String(buf);
     155                    _text = DataHelper.getUTF8(buf);
    156156                } catch (IOException ioe) {
    157157                    ioe.printStackTrace();
  • apps/syndie/java/src/net/i2p/syndie/EntryExtractor.java

    rb6ea55f r9bd87ab  
    6666    }
    6767    private void extractHeaders(EntryContainer entry, File entryDir) throws IOException {
    68         FileWriter out = null;
     68        FileOutputStream out = null;
    6969        try {
    70             out = new FileWriter(new File(entryDir, HEADERS));
     70            out = new FileOutputStream(new File(entryDir, HEADERS));
    7171            Map headers = entry.getHeaders();
    7272            for (Iterator iter = headers.keySet().iterator(); iter.hasNext(); ) {
    7373                String k = (String)iter.next();
    7474                String v = (String)headers.get(k);
    75                 out.write(k.trim() + '=' + v.trim() + '\n');
     75                out.write(DataHelper.getUTF8(k.trim() + '=' + v.trim() + '\n'));
    7676            }
    7777        } finally {
     
    8080    }
    8181    private void extractMeta(EntryContainer entry, File entryDir) throws IOException {
    82         FileWriter out = null;
     82        FileOutputStream out = null;
    8383        try {
    84             out = new FileWriter(new File(entryDir, META));
    85             out.write("format=" + entry.getFormat() + '\n');
    86             out.write("size=" + entry.getCompleteSize() + '\n');
    87             out.write("blog=" + entry.getURI().getKeyHash().toBase64() + '\n');
    88             out.write("entry=" + entry.getURI().getEntryId() + '\n');
     84            out = new FileOutputStream(new File(entryDir, META));
     85            out.write(DataHelper.getUTF8("format=" + entry.getFormat() + '\n'));
     86            out.write(DataHelper.getUTF8("size=" + entry.getCompleteSize() + '\n'));
     87            out.write(DataHelper.getUTF8("blog=" + entry.getURI().getKeyHash().toBase64() + '\n'));
     88            out.write(DataHelper.getUTF8("entry=" + entry.getURI().getEntryId() + '\n'));
    8989        } finally {
    9090            out.close();
     
    9292    }
    9393    private void extractEntry(EntryContainer entry, File entryDir) throws IOException {
    94         FileWriter out = null;
     94        FileOutputStream out = null;
    9595        try {
    96             out = new FileWriter(new File(entryDir, ENTRY));
    97             out.write(entry.getEntry().getText());
     96            out = new FileOutputStream(new File(entryDir, ENTRY));
     97            out.write(DataHelper.getUTF8(entry.getEntry().getText()));
    9898        } finally {
    9999            out.close();
     
    116116    }
    117117    private void extractAttachmentMetadata(int num, Attachment attachment, File entryDir) throws IOException {
    118         FileWriter out = null;
     118        FileOutputStream out = null;
    119119        try {
    120             out = new FileWriter(new File(entryDir, ATTACHMENT_PREFIX + num + ATTACHMENT_META_SUFFIX));
     120            out = new FileOutputStream(new File(entryDir, ATTACHMENT_PREFIX + num + ATTACHMENT_META_SUFFIX));
    121121            Map meta = attachment.getMeta();
    122122            for (Iterator iter = meta.keySet().iterator(); iter.hasNext(); ) {
    123123                String k = (String)iter.next();
    124124                String v = (String)meta.get(k);
    125                 out.write(k + '=' + v + '\n');
     125                out.write(DataHelper.getUTF8(k + '=' + v + '\n'));
    126126            }
    127             out.write(ATTACHMENT_DATA_SIZE + '=' + attachment.getDataLength());
     127            out.write(DataHelper.getUTF8(ATTACHMENT_DATA_SIZE + '=' + attachment.getDataLength()));
    128128        } finally {
    129129            out.close();
  • apps/syndie/java/src/net/i2p/syndie/User.java

    rb6ea55f r9bd87ab  
    11package net.i2p.syndie;
    22
     3import java.io.UnsupportedEncodingException;
    34import java.util.*;
    45import net.i2p.I2PAppContext;
     
    99100    public String login(String login, String pass, Properties props) {
    100101        String expectedPass = props.getProperty("password");
    101         String hpass = Base64.encode(_context.sha().calculateHash(pass.getBytes()).getData());
     102        String hpass = Base64.encode(_context.sha().calculateHash(DataHelper.getUTF8(pass)).getData());
    102103        if (!hpass.equals(expectedPass)) {
    103104            _authenticated = false;
     
    196197        buf.append("defaultselector=" + getDefaultSelector() + "\n");
    197198        buf.append("allowaccessremote=" + _allowAccessRemote + "\n");
    198         buf.append("eepproxyhost="+_eepProxyHost+"\n");
    199         buf.append("eepproxyport="+_eepProxyPort+"\n");
    200         buf.append("webproxyhost="+_webProxyHost+"\n");
    201         buf.append("webproxyport="+_webProxyPort+"\n");
    202         buf.append("torproxyhost="+_torProxyHost+"\n");
    203         buf.append("torproxyport="+_torProxyPort+"\n");
    204199       
    205200        buf.append("groups=");
  • apps/syndie/java/src/net/i2p/syndie/data/ArchiveIndex.java

    rb6ea55f r9bd87ab  
    191191        _newestEntries = new ArrayList();
    192192        _headers = new Properties();
    193         BufferedReader in = new BufferedReader(new InputStreamReader(index));
     193        BufferedReader in = new BufferedReader(new InputStreamReader(index, "UTF-8"));
    194194        String line = null;
    195195        line = in.readLine();
     
    241241            else if (key.equals("NewestEntries"))
    242242                _newestEntries = parseNewestEntries(val);
    243             else
    244                 System.err.println("Key: " + key + " val: " + val);
     243            //else
     244            //    System.err.println("Key: " + key + " val: " + val);
    245245        }
    246246    }
     
    266266                if (!tag.equals(summary.tag)) {
    267267                    System.out.println("Tag [" + summary.tag + "] does not match the requested [" + tag + "] in " + summary.blog.toBase64());
     268                    if (false) {
     269                        StringBuffer b = new StringBuffer(tag.length()*2);
     270                        for (int j = 0; j < tag.length(); j++) {
     271                            b.append((int)tag.charAt(j));
     272                            b.append('.');
     273                            if (summary.tag.length() > j+1)
     274                                b.append((int)summary.tag.charAt(j));
     275                            else
     276                                b.append('_');
     277                            b.append(' ');
     278                        }
     279                        System.out.println("tag.summary: " + b.toString());
     280                    }
    268281                    continue;
    269282                }
     
    274287                String k = (Long.MAX_VALUE-entry.entry.getEntryId()) + "-" + entry.entry.getKeyHash().toBase64();
    275288                ordered.put(k, entry.entry);
    276                 System.err.println("Including match: " + k);
     289                //System.err.println("Including match: " + k);
    277290            }
    278291        }
     
    314327            return;
    315328        tok.nextToken();
    316         Hash keyHash = new Hash(Base64.decode(tok.nextToken()));
    317         long when = getIndexDate(tok.nextToken());
     329        String keyStr = tok.nextToken();
     330        Hash keyHash = new Hash(Base64.decode(keyStr));
     331        String whenStr = tok.nextToken();
     332        long when = getIndexDate(whenStr);
    318333        String tag = tok.nextToken();
    319334        BlogSummary summary = new BlogSummary();
  • apps/syndie/java/src/net/i2p/syndie/data/Attachment.java

    rb6ea55f r9bd87ab  
    33import java.io.*;
    44import java.util.*;
     5import net.i2p.data.DataHelper;
    56
    67/**
     
    8687            meta.append(_keys.get(i)).append(':').append(_values.get(i)).append('\n');
    8788        }
    88         _rawMetadata = meta.toString().getBytes();
     89        _rawMetadata = DataHelper.getUTF8(meta);
    8990    }
    9091   
     
    9798        for (int i = 0; i < _rawMetadata.length; i++) {
    9899            if (_rawMetadata[i] == ':') {
    99                 key = new String(_rawMetadata, keyBegin, i - keyBegin);
     100                key = DataHelper.getUTF8(_rawMetadata, keyBegin, i - keyBegin);
    100101                valBegin = i + 1;
    101102            } else if (_rawMetadata[i] == '\n') {
    102                 val = new String(_rawMetadata, valBegin, i - valBegin);
     103                val = DataHelper.getUTF8(_rawMetadata, valBegin, i - valBegin);
    103104                _keys.add(key);
    104105                _values.add(val);
  • apps/syndie/java/src/net/i2p/syndie/data/BlogInfo.java

    rb6ea55f r9bd87ab  
    5858   
    5959    public void load(InputStream in) throws IOException {
    60         BufferedReader reader = new BufferedReader(new InputStreamReader(in));
     60        BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
    6161        List names = new ArrayList();
    6262        List vals = new ArrayList();
    6363        String line = null;
    6464        while ( (line = reader.readLine()) != null) {
     65            System.err.println("Read info line [" + line + "]");
    6566            line = line.trim();
    6667            int len = line.length();
     
    8485            _optionNames[i] = (String)names.get(i);
    8586            _optionValues[i] = (String)vals.get(i);
     87            System.out.println("Loaded info: [" + _optionNames[i] + "] = [" + _optionValues[i] + "]");
    8688        }
    8789       
     
    111113        }
    112114        String s = buf.toString();
    113         out.write(s.getBytes());
     115        out.write(s.getBytes("UTF-8"));
    114116    }
    115117   
    116118    public String getProperty(String name) {
    117119        for (int i = 0; i < _optionNames.length; i++) {
    118             if (_optionNames[i].equals(name))
    119                 return _optionValues[i];
     120            if (_optionNames[i].equals(name)) {
     121                String val = _optionValues[i];
     122                System.out.println("getProperty[" + name + "] = [" + val + "] [sz=" + val.length() +"]");
     123                for (int j = 0; j < val.length(); j++) {
     124                    char c = (char)val.charAt(j);
     125                    if (c != (c & 0x7F))
     126                        System.out.println("char " + j + ": " + (int)c);
     127                }
     128                return val;
     129            }
    120130        }
    121131        return null;
     
    215225        return buf.toString();
    216226    }
     227
     228    private static final String TEST_STRING = "\u20AC\u00DF\u6771\u10400\u00F6";
    217229   
    218230    public static void main(String args[]) {
    219231        I2PAppContext ctx = I2PAppContext.getGlobalContext();
    220         /*
     232        if (true) {
    221233        try {
    222234            Object keys[] = ctx.keyGenerator().generateSigningKeypair();
     
    225237
    226238            Properties opts = new Properties();
    227             opts.setProperty("Name", "n4m3");
    228             opts.setProperty("Description", "foo");
     239            opts.setProperty("Name", TEST_STRING);
     240            opts.setProperty("Description", TEST_STRING);
    229241            opts.setProperty("Edition", "0");
    230             opts.setProperty("ContactURL", "u@h.org");
    231 
     242            opts.setProperty("ContactURL", TEST_STRING);
     243
     244            String nameOrig = opts.getProperty("Name");
    232245            BlogInfo info = new BlogInfo(pub, null, opts);
    233             System.err.println("\n");
    234             System.err.println("\n");
    235246            info.sign(ctx, priv);
    236             System.err.println("\n");
    237247            boolean ok = info.verify(ctx);
    238             System.err.println("\n");
    239248            System.err.println("sign&verify: " + ok);
    240             System.err.println("\n");
    241             System.err.println("\n");
    242249           
    243250            FileOutputStream o = new FileOutputStream("bloginfo-test.dat");
     
    253260            System.err.println("Data: " + Base64.encode(buf, 0, sz));
    254261            System.err.println("Str : " + new String(buf, 0, sz));
     262           
     263            System.err.println("Name ok? " + read.getProperty("Name").equals(TEST_STRING));
     264            System.err.println("Desc ok? " + read.getProperty("Description").equals(TEST_STRING));
     265            System.err.println("Name ok? " + read.getProperty("ContactURL").equals(TEST_STRING));
    255266        } catch (Exception e) { e.printStackTrace(); }
    256         */
     267        } else {
    257268        try {
    258269            FileInputStream in = new FileInputStream(args[0]);
     
    262273            System.out.println("OK? " + ok + " :" + info);
    263274        } catch (Exception e) { e.printStackTrace(); }
     275        }
    264276    }
    265277}
  • apps/syndie/java/src/net/i2p/syndie/data/EntryContainer.java

    rb6ea55f r9bd87ab  
    5959        this();
    6060        _entryURI = uri;
    61         _entryData = new Entry(new String(smlData));
     61        _entryData = new Entry(DataHelper.getUTF8(smlData));
    6262        setHeader(HEADER_BLOGKEY, Base64.encode(uri.getKeyHash().getData()));
    6363        StringBuffer buf = new StringBuffer();
     
    7272    public int getFormat() { return _format; }
    7373   
     74    private String readLine(InputStream in) throws IOException {
     75        ByteArrayOutputStream baos = new ByteArrayOutputStream(512);
     76        int i = 0;
     77        while (true) {
     78            int c = in.read();
     79            if ( (c == (int)'\n') || (c == (int)'\r') ) {
     80                break;
     81            } else if (c == -1) {
     82                if (i == 0)
     83                    return null;
     84                else
     85                    break;
     86            } else {
     87                baos.write(c);
     88            }
     89            i++;
     90        }
     91       
     92        return DataHelper.getUTF8(baos.toByteArray());
     93        //BufferedReader r = new BufferedReader(new InputStreamReader(in, "UTF-8"), 1);
     94        //String line = r.readLine();
     95        //return line;
     96    }
     97   
    7498    public void load(InputStream source) throws IOException {
    75         String line = DataHelper.readLine(source);
     99        String line = readLine(source);
    76100        if (line == null) throw new IOException("No format line in the entry");
     101        //System.err.println("read container format line [" + line + "]");
    77102        String fmt = line.trim();
    78103        if (FORMAT_ZIP_UNENCRYPTED_STR.equals(fmt)) {
     
    84109        }
    85110       
    86         while ( (line = DataHelper.readLine(source)) != null) {
     111        while ( (line = readLine(source)) != null) {
     112            //System.err.println("read container header line [" + line + "]");
    87113            line = line.trim();
    88114            int len = line.length();
     
    100126        parseHeaders();
    101127       
    102         String sigStr = DataHelper.readLine(source);
     128        String sigStr = readLine(source);
     129        //System.err.println("read container signature line [" + line + "]");
    103130        if ( (sigStr == null) || (sigStr.indexOf("Signature:") == -1) )
    104131            throw new IOException("No signature line");
     
    108135        //System.out.println("Sig: " + _signature.toBase64());
    109136       
    110         line = DataHelper.readLine(source);
     137        line = readLine(source);
     138        //System.err.println("read container size line [" + line + "]");
    111139        if (line == null)
    112140            throw new IOException("No size line");
     
    166194        ZipOutputStream out = new ZipOutputStream(baos);
    167195        ZipEntry ze = new ZipEntry(ZIP_ENTRY);
    168         byte data[] = _entryData.getText().getBytes();
     196        byte data[] = DataHelper.getUTF8(_entryData.getText());
    169197        ze.setTime(0);
    170198        out.putNextEntry(ze);
     
    223251            String name = entry.getName();
    224252            if (ZIP_ENTRY.equals(name)) {
    225                 _entryData = new Entry(new String(entryData));
     253                _entryData = new Entry(DataHelper.getUTF8(entryData));
    226254            } else if (name.startsWith(ZIP_ATTACHMENT_PREFIX)) {
    227255                attachments.put(name, (Object)entryData);
     
    312340        String idVal = getHeader(HEADER_ENTRYID);
    313341       
    314         if (keyHash == null)
     342        if (keyHash == null) {
     343            System.err.println("Headers: " + _rawKeys);
     344            System.err.println("Values : " + _rawValues);
    315345            throw new IOException("Missing " + HEADER_BLOGKEY + " header");
     346        }
    316347       
    317348        long entryId = -1;
     
    320351                entryId = Long.parseLong(idVal.trim());
    321352            } catch (NumberFormatException nfe) {
     353                System.err.println("Headers: " + _rawKeys);
     354                System.err.println("Values : " + _rawValues);
    322355                throw new IOException("Invalid format of entryId (" + idVal + ")");
    323356            }
     
    386419       
    387420        //System.out.println("Writing raw: \n[" + str + "] / " + I2PAppContext.getGlobalContext().sha().calculateHash(str.getBytes()) + ", raw data: " + I2PAppContext.getGlobalContext().sha().calculateHash(_rawData).toBase64() + "\n");
    388         out.write(str.getBytes());
     421        out.write(DataHelper.getUTF8(str));
    389422        out.write(_rawData);
    390423    }
  • apps/syndie/java/src/net/i2p/syndie/data/LocalArchiveIndex.java

    rb6ea55f r9bd87ab  
    7676        }
    7777        replies.add(reply);
    78         System.err.println("Adding reply to " + parent + " from child " + reply + " (# replies: " + replies.size() + ")");
     78        //System.err.println("Adding reply to " + parent + " from child " + reply + " (# replies: " + replies.size() + ")");
    7979    }
    8080
  • apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java

    rb6ea55f r9bd87ab  
    4545        }
    4646        HTMLRenderer renderer = new HTMLRenderer();
    47         FileWriter out = null;
     47        Writer out = null;
    4848        try {
    4949            ByteArrayOutputStream baos = new ByteArrayOutputStream(1024*512);
     
    5353            while ( (read = in.read(buf)) != -1)
    5454                baos.write(buf, 0, read);
    55             out = new FileWriter(args[1]);
    56             renderer.render(new User(), BlogManager.instance().getArchive(), null, new String(baos.toByteArray()), out, false, true);   
     55            out = new OutputStreamWriter(new FileOutputStream(args[1]), "UTF-8");
     56            renderer.render(new User(), BlogManager.instance().getArchive(), null, DataHelper.getUTF8(baos.toByteArray()), out, false, true);   
    5757        } catch (IOException ioe) {
    5858            ioe.printStackTrace();
     
    596596   
    597597    public void receiveHeader(String header, String value) {
    598         System.err.println("Receive header [" + header + "] = [" + value + "]");
     598        //System.err.println("Receive header [" + header + "] = [" + value + "]");
    599599        _headers.put(header, value);
    600600    }
     
    653653                _preBodyBuffer.append("<option value=\"blogtag://");
    654654                _preBodyBuffer.append(_entry.getURI().getKeyHash().toBase64());
    655                 _preBodyBuffer.append('/').append(Base64.encode(tags[i])).append("\">");
     655                _preBodyBuffer.append('/').append(Base64.encode(DataHelper.getUTF8(tags[i]))).append("\">");
    656656                _preBodyBuffer.append(sanitizeString(tags[i]));
    657657                _preBodyBuffer.append("</option>\n");
     
    727727    }
    728728
    729     public static final String sanitizeURL(String str) { return Base64.encode(str); }
     729    public static final String sanitizeURL(String str) { return Base64.encode(DataHelper.getUTF8(str)); }
    730730    public static final String sanitizeTagParam(String str) {
    731731        str = str.replace('&', '_'); // this should be &amp;
     
    802802            buf.append(ArchiveViewerBean.PARAM_BLOG).append('=').append(Base64.encode(blog.getData())).append('&');
    803803        if (tag != null)
    804             buf.append(ArchiveViewerBean.PARAM_TAG).append('=').append(Base64.encode(tag)).append('&');
     804            buf.append(ArchiveViewerBean.PARAM_TAG).append('=').append(Base64.encode(DataHelper.getUTF8(tag))).append('&');
    805805        if (entryId >= 0)
    806806            buf.append(ArchiveViewerBean.PARAM_ENTRY).append('=').append(entryId).append('&');
    807807        if (group != null)
    808             buf.append(ArchiveViewerBean.PARAM_GROUP).append('=').append(Base64.encode(group)).append('&');
     808            buf.append(ArchiveViewerBean.PARAM_GROUP).append('=').append(Base64.encode(DataHelper.getUTF8(group))).append('&');
    809809        if ( (pageNum >= 0) && (numPerPage > 0) ) {
    810810            buf.append(ArchiveViewerBean.PARAM_PAGE_NUMBER).append('=').append(pageNum).append('&');
  • apps/syndie/java/src/net/i2p/syndie/web/ArchiveServlet.java

    rb6ea55f r9bd87ab  
    4040   
    4141    private String getBlog(String path) {
    42         System.err.println("Blog: [" + path + "]");
     42        //System.err.println("Blog: [" + path + "]");
    4343        int start = 0;
    4444        int end = -1;
     
    5858        if (end < 0) end = len;
    5959        String rv = path.substring(start, end);
    60         System.err.println("Blog: [" + path + "] rv: [" + rv + "]");
     60        //System.err.println("Blog: [" + path + "] rv: [" + rv + "]");
    6161        return rv;
    6262    }
     
    6767        if (!(path.endsWith(".snd"))) return -1;
    6868        String rv = path.substring(start+1, path.length()-".snd".length());
    69         System.err.println("Entry: [" + path + "] rv: [" + rv + "]");
     69        //System.err.println("Entry: [" + path + "] rv: [" + rv + "]");
    7070        try {
    7171            return Long.parseLong(rv);
     
    7676   
    7777    private void renderRootIndex(HttpServletResponse resp) throws ServletException, IOException {
    78         resp.setContentType("text/html");
     78        resp.setContentType("text/html;charset=utf-8");
     79        //resp.setCharacterEncoding("UTF-8");
    7980        OutputStream out = resp.getOutputStream();
    80         out.write("<a href=\"archive.txt\">archive.txt</a><br />\n".getBytes());
     81        out.write(DataHelper.getUTF8("<a href=\"archive.txt\">archive.txt</a><br />\n"));
    8182        ArchiveIndex index = BlogManager.instance().getArchive().getIndex();
    8283        Set blogs = index.getUniqueBlogs();
     
    8485            Hash blog = (Hash)iter.next();
    8586            String s = blog.toBase64();
    86             out.write(("<a href=\"" + s + "/\">" + s + "</a><br />\n").getBytes());
     87            out.write(DataHelper.getUTF8("<a href=\"" + s + "/\">" + s + "</a><br />\n"));
    8788        }
    8889        out.close();
     
    9091   
    9192    private void renderSummary(HttpServletResponse resp) throws ServletException, IOException {
    92         resp.setContentType("text/plain");
     93        resp.setContentType("text/plain;charset=utf-8");
     94        //resp.setCharacterEncoding("UTF-8");
    9395        OutputStream out = resp.getOutputStream();
    9496        ArchiveIndex index = BlogManager.instance().getArchive().getIndex();
    95         out.write(index.toString().getBytes());
     97        out.write(DataHelper.getUTF8(index.toString()));
    9698        out.close();
    9799    }
     
    128130            return;
    129131        }
    130         resp.setContentType("text/html");
     132        resp.setContentType("text/html;charset=utf-8");
     133        //resp.setCharacterEncoding("UTF-8");
    131134        OutputStream out = resp.getOutputStream();
    132         out.write("<a href=\"..\">..</a><br />\n".getBytes());
    133         out.write(("<a href=\"" + Archive.METADATA_FILE + "\">" + Archive.METADATA_FILE + "</a><br />\n").getBytes());
     135        out.write(DataHelper.getUTF8("<a href=\"..\">..</a><br />\n"));
     136        out.write(DataHelper.getUTF8("<a href=\"" + Archive.METADATA_FILE + "\">" + Archive.METADATA_FILE + "</a><br />\n"));
    134137        List entries = new ArrayList(64);
    135138        BlogManager.instance().getArchive().getIndex().selectMatchesOrderByEntryId(entries, h, null);
    136139        for (int i = 0; i < entries.size(); i++) {
    137140            BlogURI entry = (BlogURI)entries.get(i);
    138             out.write(("<a href=\"" + entry.getEntryId() + ".snd\">" + entry.getEntryId() + ".snd</a><br />\n").getBytes());
     141            out.write(DataHelper.getUTF8("<a href=\"" + entry.getEntryId() + ".snd\">" + entry.getEntryId() + ".snd</a><br />\n"));
    139142        }
    140143        out.close();
  • apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java

    rb6ea55f r9bd87ab  
    109109            for (Iterator iter = groups.keySet().iterator(); iter.hasNext(); ) {
    110110                String name = (String)iter.next();
    111                 out.write("<option value=\"group://" + Base64.encode(name.getBytes()) + "\">" +
     111                out.write("<option value=\"group://" + Base64.encode(DataHelper.getUTF8(name)) + "\">" +
    112112                          "Group: " + HTMLRenderer.sanitizeString(name) + "</option>\n");
    113113            }
     
    153153            for (int j = 0; j < tags.size(); j++) {
    154154                String tag = (String)tags.get(j);
     155                if (false) {
     156                    StringBuffer b = new StringBuffer(tag.length()*2);
     157                    for (int k = 0; k < tag.length(); k++) {
     158                        b.append((int)tag.charAt(k));
     159                        b.append(' ');
     160                    }
     161                    System.out.println("tag in select: " + tag + ": " + b.toString());
     162                }
     163               
    155164                if (!allTags.contains(tag))
    156165                    allTags.add(tag);
     
    158167                out.write(blog);
    159168                out.write("/");
    160                 out.write(Base64.encode(tag));
     169                byte utf8tag[] = DataHelper.getUTF8(tag);
     170                String encoded = Base64.encode(utf8tag);
     171                if (false) {
     172                    byte utf8dec[] = Base64.decode(encoded);
     173                    String travel = DataHelper.getUTF8(utf8dec);
     174                    StringBuffer b = new StringBuffer();
     175                    for (int k = 0; k < travel.length(); k++) {
     176                        b.append((int)travel.charAt(k));
     177                        b.append(' ');
     178                    }
     179                    b.append(" encoded into: ");
     180                    for (int k = 0; k < encoded.length(); k++) {
     181                        b.append((int)encoded.charAt(k));
     182                        b.append(' ');
     183                    }
     184                    System.out.println("UTF8(unbase64(base64(UTF8(tag)))) == tag: " + b.toString());
     185                }
     186                out.write(encoded);
    161187                out.write("\">");
    162188                out.write(name);
     
    169195            String tag = (String)allTags.get(i);
    170196            out.write("<option value=\"tag://");
    171             out.write(Base64.encode(tag));
     197            out.write(Base64.encode(DataHelper.getUTF8(tag)));
    172198            out.write("\">Posts in any blog with the tag &quot;");
    173199            out.write(tag);
     
    200226        if (blogStr != null) blog = new Hash(Base64.decode(blogStr));
    201227        String tag = getString(parameters, PARAM_TAG);
    202         if (tag != null) tag = new String(Base64.decode(tag));
     228        if (tag != null) tag = DataHelper.getUTF8(Base64.decode(tag));
    203229        long entryId = -1;
    204230        if (blogStr != null) {
     
    209235        }
    210236        String group = getString(parameters, PARAM_GROUP);
    211         if (group != null) group = new String(Base64.decode(group));
     237        if (group != null) group = DataHelper.getUTF8(Base64.decode(group));
    212238       
    213239        String sel = getString(parameters, PARAM_SELECTOR);
     
    257283                    blog = new Hash(Base64.decode(blogStr));
    258284                    tag = selector.substring(tagStart+1);
    259                     if (tag != null) tag = new String(Base64.decode(tag));
     285                    String origTag = tag;
     286                    byte rawDecode[] = null;
     287                    if (tag != null) {
     288                        rawDecode = Base64.decode(tag);
     289                        tag = DataHelper.getUTF8(rawDecode);
     290                    }
    260291                    System.out.println("Selector [" + selector + "] blogString: [" + blogStr + "] tag: [" + tag + "]");
     292                    if (false && tag != null) {
     293                        StringBuffer b = new StringBuffer(tag.length()*2);
     294                        for (int j = 0; j < tag.length(); j++) {
     295                            b.append((int)tag.charAt(j));
     296                            if (rawDecode.length > j)
     297                                b.append('.').append((int)rawDecode[j]);
     298                            b.append(' ');
     299                        }
     300                        b.append("encoded as ");
     301                        for (int j = 0; j < origTag.length(); j++) {
     302                            b.append((int)origTag.charAt(j)).append(' ');
     303                        }
     304                        System.out.println("selected tag: " + b.toString());
     305                    }
    261306                } else if (selector.startsWith(SEL_TAG)) {
    262307                    tag = selector.substring(SEL_TAG.length());
    263                     if (tag != null) tag = new String(Base64.decode(tag));
     308                    byte rawDecode[] = null;
     309                    if (tag != null) {
     310                        rawDecode = Base64.decode(tag);
     311                        tag = DataHelper.getUTF8(rawDecode);
     312                    }
    264313                    System.out.println("Selector [" + selector + "] tag: [" + tag + "]");
     314                    if (false && tag != null) {
     315                        StringBuffer b = new StringBuffer(tag.length()*2);
     316                        for (int j = 0; j < tag.length(); j++) {
     317                            b.append((int)tag.charAt(j));
     318                            if (rawDecode.length > j)
     319                                b.append('.').append((int)rawDecode[j]);
     320                            b.append(' ');
     321                        }
     322                        System.out.println("selected tag: " + b.toString());
     323                    }
    265324                } else if (selector.startsWith(SEL_ENTRY)) {
    266325                    int entryStart = selector.lastIndexOf('/');
    267                     String blogStr = selector.substring(SEL_ENTRY.length(), entryStart);
     326                    String blogStr = blogStr = selector.substring(SEL_ENTRY.length(), entryStart);
    268327                    String entryStr = selector.substring(entryStart+1);
    269328                    try {
     
    273332                    } catch (NumberFormatException nfe) {}
    274333                } else if (selector.startsWith(SEL_GROUP)) {
    275                     group = new String(Base64.decode(selector.substring(SEL_GROUP.length())));
     334                    group = DataHelper.getUTF8(Base64.decode(selector.substring(SEL_GROUP.length())));
    276335                    System.out.println("Selector [" + selector + "] group: [" + group + "]");
    277336                }
     
    511570   
    512571    private static void renderInvalidAttachment(Map parameters, OutputStream out) throws IOException {
    513         out.write("<b>No such entry, or no such attachment</b>".getBytes());
     572        out.write(DataHelper.getUTF8("<b>No such entry, or no such attachment</b>"));
    514573    }
    515574   
  • apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java

    rb6ea55f r9bd87ab  
    582582            Hash blog = (Hash)iter.next();
    583583            if (remoteBlogs.contains(blog)) {
    584                 System.err.println("Remote index has " + blog.toBase64());
     584                //System.err.println("Remote index has " + blog.toBase64());
    585585                continue;
    586586            }
  • apps/syndie/jsp/_bodyindex.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.syndie.web.ArchiveViewerBean, net.i2p.syndie.*" %>
     1<%@page contentType="text/html; charset=UTF-8" import="net.i2p.syndie.web.ArchiveViewerBean, net.i2p.syndie.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.User" id="user" /><table border="0" width="100%">
    34<tr><form action="index.jsp"><td nowrap="true">
     
    56<input type="submit" value="Refresh" />
    67<input type="submit" name="action" value="<%=ArchiveViewerBean.SEL_ACTION_SET_AS_DEFAULT%>" />
     8<!-- char encoding: [<%=response.getCharacterEncoding()%>] content type [<%=response.getContentType()%>] Locale [<%=response.getLocale()%>] -->
    79<%ArchiveViewerBean.renderBlogs(user, request.getParameterMap(), out, "</td></form></tr><tr><td align=\"left\" valign=\"top\">");%></td></tr></table>
  • apps/syndie/jsp/addaddress.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.data.*, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.User" id="user" />
    34<html>
     
    2021String schema = null;
    2122try {
    22     name = new String(Base64.decode(nameStr));
    23     location = new String(Base64.decode(locStr));
    24     schema = new String(Base64.decode(schemaStr));
     23    name = DataHelper.getUTF8(Base64.decode(nameStr));
     24    location = DataHelper.getUTF8(Base64.decode(locStr));
     25    schema = DataHelper.getUTF8(Base64.decode(schemaStr));
    2526} catch (NullPointerException npe) {
    2627    // ignore
  • apps/syndie/jsp/externallink.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.data.*, net.i2p.syndie.web.*, net.i2p.syndie.sml.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<html>
    34<head>
     
    1617String schema = request.getParameter("schema");
    1718String desc = request.getParameter("description");
    18 if (loc != null) loc = HTMLRenderer.sanitizeString(new String(Base64.decode(loc)));
    19 if (schema != null) schema = HTMLRenderer.sanitizeString(new String(Base64.decode(schema)));
    20 if (desc != null) desc = HTMLRenderer.sanitizeString(new String(Base64.decode(desc)));
     19if (loc != null) loc = HTMLRenderer.sanitizeString(DataHelper.getUTF8(Base64.decode(loc)));
     20if (schema != null) schema = HTMLRenderer.sanitizeString(DataHelper.getUTF8(Base64.decode(schema)));
     21if (desc != null) desc = HTMLRenderer.sanitizeString(DataHelper.getUTF8(Base64.decode(desc)));
    2122
    2223if ( (loc != null) && (schema != null) ) {
  • apps/syndie/jsp/import.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.data.*, net.i2p.syndie.*, org.mortbay.servlet.MultiPartRequest, java.util.*, java.io.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.data.*, net.i2p.syndie.*, org.mortbay.servlet.MultiPartRequest, java.util.*, java.io.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.data.TransparentArchiveIndex" id="archive" />
    34<html>
  • apps/syndie/jsp/index.jsp

    rb6ea55f r9bd87ab  
    1 <%@page contentType="text/html" import="net.i2p.syndie.web.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.syndie.web.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<html>
    34<head>
  • apps/syndie/jsp/post.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.data.*, net.i2p.syndie.*, org.mortbay.servlet.MultiPartRequest, java.util.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.data.*, net.i2p.syndie.*, org.mortbay.servlet.MultiPartRequest, java.util.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.User" id="user" />
    34<jsp:useBean scope="session" class="net.i2p.syndie.web.PostBean" id="post" />
  • apps/syndie/jsp/register.jsp

    rb6ea55f r9bd87ab  
    1 <%@page import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.data.Base64, net.i2p.syndie.web.*, net.i2p.syndie.sml.*, net.i2p.syndie.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.User" id="user" />
    34<html>
     
    1314    <td valign="top" align="left" rowspan="2"><jsp:include page="_rightnav.jsp" /></td></tr>
    1415<tr><td valign="top" align="left" colspan="3"><%
    15 
    1616String regLogin = request.getParameter("login");
    1717boolean showForm = true;
  • apps/syndie/jsp/remote.jsp

    rb6ea55f r9bd87ab  
    1 <%@page contentType="text/html" import="net.i2p.syndie.web.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.syndie.web.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<jsp:useBean scope="session" class="net.i2p.syndie.web.RemoteArchiveBean" id="remote" />
    34<jsp:useBean scope="session" class="net.i2p.syndie.User" id="user" />
  • apps/syndie/jsp/style.jsp

    rb6ea55f r9bd87ab  
    1 <%@page contentType="text/css" %>
     1<%@page contentType="text/css; charset=UTF-8" pageEncoding="UTF-8"  %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<%@include file="syndie.css" %>
  • apps/syndie/jsp/viewattachment.jsp

    rb6ea55f r9bd87ab  
     1<% request.setCharacterEncoding("UTF-8"); %>
    12<%
    23java.util.Map params = request.getParameterMap();
  • apps/syndie/jsp/viewmetadata.jsp

    rb6ea55f r9bd87ab  
    1 <%@page contentType="text/html" import="net.i2p.syndie.web.*" %>
     1<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="net.i2p.syndie.web.*" %>
     2<% request.setCharacterEncoding("UTF-8"); %>
    23<html>
    34<head>
  • apps/syndie/jsp/viewtempattachment.jsp

    rb6ea55f r9bd87ab  
    11<%@page  import="net.i2p.syndie.web.ArchiveViewerBean" %><jsp:useBean
    22scope="session" class="net.i2p.syndie.web.PostBean" id="post" /><%
     3request.setCharacterEncoding("UTF-8");
    34String id = request.getParameter(ArchiveViewerBean.PARAM_ATTACHMENT);
    45if (id != null) {
  • core/java/src/net/i2p/data/DataHelper.java

    rb6ea55f r9bd87ab  
    2222import java.io.OutputStream;
    2323import java.io.PrintWriter;
     24import java.io.UnsupportedEncodingException;
    2425import java.math.BigInteger;
    2526import java.util.ArrayList;
     
    881882        return rv;
    882883    }
     884
     885    public static byte[] getUTF8(String orig) {
     886        if (orig == null) return null;
     887        try {
     888            return orig.getBytes("UTF-8");
     889        } catch (UnsupportedEncodingException uee) {
     890            throw new RuntimeException("no utf8!?");
     891        }
     892    }
     893    public static byte[] getUTF8(StringBuffer orig) {
     894        if (orig == null) return null;
     895        return getUTF8(orig.toString());
     896    }
     897    public static String getUTF8(byte orig[]) {
     898        if (orig == null) return null;
     899        try {
     900            return new String(orig, "UTF-8");
     901        } catch (UnsupportedEncodingException uee) {
     902            throw new RuntimeException("no utf8!?");
     903        }
     904    }
     905    public static String getUTF8(byte orig[], int offset, int len) {
     906        if (orig == null) return null;
     907        try {
     908            return new String(orig, offset, len, "UTF-8");
     909        } catch (UnsupportedEncodingException uee) {
     910            throw new RuntimeException("No utf8!?");
     911        }
     912    }
     913   
    883914   
    884915}
Note: See TracChangeset for help on using the changeset viewer.