J'utilise Phonegap pour créer un plugin visant à envoyer des SMS. Voici la fonction que j'utilise pour le faire.Hébreu SMS dans Android
private void sendSMS(String phoneNumber, String message) {
// Activity currentActivity = (Activity)this.ctx;
SmsManager manager = SmsManager.getDefault();
PendingIntent sentIntent = PendingIntent.getActivity(cordova.getContext(), 0, new Intent(), 0);
manager.sendTextMessage(phoneNumber, null, message, sentIntent, null);
}
Lorsque la variable "message" contient l'anglais, tout fonctionne correctement. Mais si le message est en hébreu, je reçois une erreur.
Voir ci-dessous entrée en hébreu
סך הלכל מוזמן 2 פריטים סלט פיצוצ בסרי שווה ל 10.3 כמות 1 סלט שרימפס שווה ל 8,15 כמות 2 סך הכל חשבון 26.6 שקלים
Ci-dessous est une classe détient la description du texte. Je soupçonne que le problème est un problème avec l'Unicode, mais je ne sais pas comment le réparer.
Aidez-nous s'il vous plaît.
public class MenuEntry {
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public MenuEntry() {
super();
this.pid = "";
}
public String GetPriceAndDescription(int unit) {
StringBuilder result = new StringBuilder();
result.append(this.getTitle());
result.append(" שווה ל ");
result.append(this.getPrice());
result.append(" כמות ");
result.append(unit);
result.append("\n");
return result.toString();
}
public String GetPriceAndDescription() {
StringBuilder result = new StringBuilder();
result.append(this.getTitle());
result.append(" שווה ל ");
result.append(this.getPrice());
result.append("\n");
return result.toString();
}
public MenuEntry(String pid, String title, String description, double price, String categoryName) {
super();
this.pid = pid;
this.title = title;
this.description = description;
this.price = price;
this.categoryName = categoryName;
}
private String pid;
private String title;
private String description;
private double price;
private String categoryName;
}
Voir ci-dessous la définition du fichier manifeste, pour voir la version cible.
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />
"Je reçois une erreur". est une information aussi utile que mon conseil actuel pour vous: "alors réparez-le". –
Quelle erreur obtenez-vous? Sur quelle version Android testez-vous? –
Pour que l'hébreu dans Java Strings soit correct, l'éditeur et le compilateur javac doivent fonctionner dans le même codage ('javac -encoding utf') ou utiliser des échappements unicode' \ u05d0' (aleph). (Il est peu probable que vous vous soyez trompé.) –