我正在尝试注册一个自定义 CharsetProvider 以便能够使用 X-Gsm7Bit 编码。我使用Logica 的https://github.com/OpenSmpp/opensmpp/tree/master/charset/src/main/java/org/smpp/charset provider。为了注册这个新的字符集提供程序,我使用META-INF/services/java.nio.charsets.spi.CharsetProvider带有内容的文件org.smpp.charset.Gsm7BitCharsetProvider。
我不能让它工作。测试应用程序的来源在这里https://github.com/asmsoft/provider
java.util.ServiceConfigurationError: java.nio.charset.spi.CharsetProvider: Provider org.smpp.charset.Gsm7BitCharsetProvider not found当我把它作为一个胖罐子开始时我得到了
mvn clean
mvn package
java -jar target/provider-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
如果我开始,mvn spring-boot:run我得到java.io.UnsupportedEncodingException: X-Gsm7Bit
当我使用 IDE 启动应用程序时,一切正常。
目前我解决了我的问题如下:我已经将提供自定义字符集的 jar 放入JAVA_HOME/jre/lib/ext并且一切都按预期工作,字符集正在启动时注册。
我对这个解决方案不满意,我想寻求你的帮助。
为什么这段代码会给我带来奇怪的结果?
const VAR1: u16 = 1;
const VAR2: u16 = 2;
const VAR3: u16 = 3;
const VAR4: u16 = 4;
#[cfg(test)]
mod tests {
// use {VAR1, VAR2, VAR3, VAR4};
#[test]
fn test_match() {
let a = 4;
match a {
VAR1 => {
println!("matched: 1");
}
VAR2 => {
println!("matched: 2");
}
VAR3 => {
println!("matched: 3");
}
VAR4 => {
println!("matched: 4");
}
_ => {
println!("not matched");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当// use {VAR1, VAR2, …