[Cyberduck-trac] [Cyberduck] #1105: Multi-byte name problem Shift_JIS(Japanese)
Cyberduck
trac at trac.cyberduck.ch
Fri May 18 19:01:01 CEST 2007
#1105: Multi-byte name problem Shift_JIS(Japanese)
-------------------------------------+--------------------------------------
Reporter: yshobby | Owner: dkocher
Type: defect | Status: new
Priority: high | Milestone:
Component: core | Version: 2.7.3
Severity: major | Resolution:
Keywords: Japanese Shift_JIS SJIS |
-------------------------------------+--------------------------------------
Old description:
> Hi.
>
> There are plural letter expression methods as a problem in specifications
> of Unicode. [[BR]]
> Ex. [[BR]]
> HIRAGANA LETTER BA : u3070 == u306f u3099[[BR]]
> HIRAGANA LETTER PA : u3071 == u306f u309a[[BR]]
>
> Local file system absorbs the problem. But Shift_JIS used server Problem.
> However, a problem happens with a server using Shift_JIS for.[[BR]]
> Ex. UTF -> Shift_JIS[[BR]]
> u3070 -> 0x82ce[[BR]]
> u306f u3099 -> 0x82cd 0x3f(error)
>
> I am not good at the Java language.
> Therefore I do not understand the most suitable method, but deal by the
> following methods.
>
> ch.cyberduck.core.Path
> public static String normalize(final String path) {
> ||
> ||
> // Return the normalized path that we have completed[[BR]]
> //return normalized;[[BR]]
> String n="";[[BR]]
> char chw = 0;[[BR]]
> for(int i=0; i<normalized.length(); i++) {[[BR]]
> char ch = normalized.charAt(i);[[BR]]
> if(ch == 12441) { //
> daku[[BR]]
> chw += 1;[[BR]]
> } else if(ch == 12442) { //
> handaku[[BR]]
> chw += 2;[[BR]]
> } else {[[BR]]
> if(chw != 0) {[[BR]]
> n += chw;[[BR]]
> }[[BR]]
> chw = ch;[[BR]]
> }[[BR]]
> }[[BR]]
> n += chw;[[BR]]
> return n;[[BR]]
> }
>
> Please examine an appropriate method.
>
> thanks.
New description:
Hi.
There are plural letter expression methods as a problem in specifications
of Unicode. [[BR]]
Ex. [[BR]]
HIRAGANA LETTER BA : u3070 == u306f u3099[[BR]]
HIRAGANA LETTER PA : u3071 == u306f u309a[[BR]]
Local file system absorbs the problem. But Shift_JIS used server Problem.
However, a problem happens with a server using Shift_JIS for.[[BR]]
Ex. UTF -> Shift_JIS[[BR]]
{{{
u3070 -> 0x82ce[[BR]]
u306f u3099 -> 0x82cd 0x3f(error)
}}}
I am not good at the Java language.
Therefore I do not understand the most suitable method, but deal by the
following methods.
{{{
ch.cyberduck.core.Path
public static String normalize(final String path) {
||
||
// Return the normalized path that we have completed[[BR]]
//return normalized;[[BR]]
String n="";[[BR]]
char chw = 0;[[BR]]
for(int i=0; i<normalized.length(); i++) {[[BR]]
char ch = normalized.charAt(i);[[BR]]
if(ch == 12441) { //
daku[[BR]]
chw += 1;[[BR]]
} else if(ch == 12442) { //
handaku[[BR]]
chw += 2;[[BR]]
} else {[[BR]]
if(chw != 0) {[[BR]]
n += chw;[[BR]]
}[[BR]]
chw = ch;[[BR]]
}[[BR]]
}[[BR]]
n += chw;[[BR]]
return n;[[BR]]
}
}}}
Please examine an appropriate method.
thanks.
--
Ticket URL: <http://trac.cyberduck.ch/ticket/1105#comment:1>
Cyberduck <http://cyberduck.ch>
FTP and SFTP Browser for Mac OS X.
More information about the Cyberduck-trac
mailing list