34 lines
956 B
Java
34 lines
956 B
Java
// Copyright 2014 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package org.chromium.url;
|
|
|
|
import org.jni_zero.CalledByNative;
|
|
import org.jni_zero.JNINamespace;
|
|
|
|
import java.net.IDN;
|
|
|
|
/**
|
|
* This class is used to convert unicode IDN domain names to ASCII, when not
|
|
* building with ICU.
|
|
*/
|
|
@JNINamespace("url::android")
|
|
public class IDNStringUtil {
|
|
/**
|
|
* Attempts to convert a Unicode string to an ASCII string using IDN rules.
|
|
* As of May 2014, the underlying Java function IDNA2003.
|
|
* @param src String to convert.
|
|
* @return: String containing only ASCII characters on success, null on
|
|
* failure.
|
|
*/
|
|
@CalledByNative
|
|
private static String idnToASCII(String src) {
|
|
try {
|
|
return IDN.toASCII(src, IDN.USE_STD3_ASCII_RULES);
|
|
} catch (Exception e) {
|
|
return null;
|
|
}
|
|
}
|
|
}
|