Sto usando una lib che ha un tipo enum con tali come;OrientDB che ha problemi con Unicode, turco ed enums
Type.SHORT
Type.LONG
Type.FLOAT
Type.STRING
Mentre io sono il debug in Eclipse, ho ottenuto un errore:
No enum const class Type.STRİNG
Come sto usando un sistema turco, c'è un problema sulla i di lavoro> io, ma come questo è un const enum , anche se inserisco tutti gli attributi come UTF-8, nulla potrebbe ottenere che STRING è ciò che Eclipse dovrebbe cercare. Ma cerca ancora STRİNG e non riesce a trovarlo e non posso utilizzarlo. Cosa devo fare per quello?
Progetto> Proprietà> Resouce> La codifica del file di testo è UTF-8 ora. Il problema continua
MODIFICA: Ulteriori informazioni possono fornire alcuni indizi che non riesco a ottenere; Sto lavorando su OrientDB. Questo è il mio primo tentativo, quindi non so se il problema potrebbe essere sui pacchetti di OrientDB. Ma sto usando molte altre librerie, non ho mai visto un problema simile. Esiste un enumerazione OType in questo pacchetto e sto solo cercando di connettermi al database.
String url = "local:database";
ODatabaseObjectTx db = new ODatabaseObjectTx(url).
Person person = new Person("John");
db.save(person);
db.close();
Non c'è più codice che uso ancora. Database creato ma poi ho ottenere il java.lang.IllegalArgumentException
:
Caused by: java.lang.IllegalArgumentException: No enum const class com.orientechnologies.orient.core.metadata.schema.OType.STRİNG
at java.lang.Enum.valueOf(Unknown Source)
at com.orientechnologies.orient.core.metadata.schema.OType.valueOf(OType.java:41)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLCreateProperty.parse(OCommandExecutorSQLCreateProperty.java:81)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLCreateProperty.parse(OCommandExecutorSQLCreateProperty.java:35)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:43)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:28)
at com.orientechnologies.orient.core.storage.OStorageEmbedded.command(OStorageEmbedded.java:63)
at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:63)
at com.orientechnologies.orient.core.metadata.schema.OClassImpl.addProperty(OClassImpl.java:342)
at com.orientechnologies.orient.core.metadata.schema.OClassImpl.createProperty(OClassImpl.java:258)
at com.orientechnologies.orient.core.metadata.security.OSecurityShared.create(OSecurityShared.java:177)
at com.orientechnologies.orient.core.metadata.security.OSecurityProxy.create(OSecurityProxy.java:37)
at com.orientechnologies.orient.core.metadata.OMetadata.create(OMetadata.java:70)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.create(ODatabaseRecordAbstract.java:142)
... 4 more
Ecco classe oType: http://code.google.com/p/orient/source/browse/trunk/core/src/main/java/com/orientechnologies/orient/core/metadata/schema/OType.java
E altra classe; OCommandExecutorSQLCreateProperty: http://code.google.com/p/orient/source/browse/trunk/core/src/main/java/com/orientechnologies/orient/core/sql/OCommandExecutorSQLCreateProperty.java
Linea 81 dice: type = OType.valueOf(word.toString());
Il completamento automatico di Eclipse è corretto quando si preme 'CTRL + Spazio' subito dopo aver digitato' Type.STR'? –
In realtà non lo uso digitando direttamente. Ci deve essere qualcosa come il riflesso o qualcosa che lo usa. Ma come risposta alla tua domanda, digitando, non ci sono problemi. Ctrl + Spazio mi dà Type.STRING (corretto, senza problemi) –
Forse c'è un problema con il codice che chiama in modo riflessivo l'enum - da dove viene quel valore? L'input dell'utente forma la tastiera solo turca, o un altro sistema che invia 'İ' invece di' I'? –