mailto: команда. Еврейские шрифты превращаются в символы EncodeURI в почтовом клиенте - PullRequest
0 голосов
/ 23 марта 2020

Моя цель: Я хотел бы отправить форму, содержащую строки в иврите, в программу электронной почты локального пользователя с помощью команды mailto ().

Я ожидаю те же шрифты на иврите, которые появляются в сообщении почтового клиента.

Результат: Я получаю такие знаки: =% D7% 90% D7% 95% D7% A8% D7% 99 &.

Что я пробовал сделать: Используя несколько методов энтипа.

HTML Код

        <h1>צור עמנו קשר</h1>
        <div class="first-name">
            <mat-form-field appearance="fill" class="first-name-line">
                <mat-label>שם פרטי</mat-label>
                <input matInput type="text" [formControl]="firstName" required name="firstName" autofocus>
                <mat-error *ngIf="firstName.invalid">{{getFirstNameErrorMessage()}}</mat-error>
            </mat-form-field>
        </div>
        <div class="last-name">
            <mat-form-field appearance="fill" class="last-name-line">
                <mat-label>שם משפחה</mat-label>   
                <input matInput type="text" [formControl]="lastName" required name="lastName">
                <mat-error *ngIf="lastName.invalid">{{getLastNameErrorMessage()}}</mat-error>
            </mat-form-field>
        </div>
        <div class="telephone">
            <mat-form-field appearance="fill" class="telephone-line">
                <mat-label>טלפון</mat-label>
                <input matInput type="tel" [formControl]="telephone" required name="telephone" maxlength="13" minlength="9">
                <mat-error *ngIf="telephone.invalid">{{getTelephoneErrorMessage()}}</mat-error>
            </mat-form-field>
        </div>
        <div class="email-container">
            <mat-form-field appearance="fill" class="email-line">
                <mat-label>מייל</mat-label>
                <input matInput type="email" name="email">
            </mat-form-field>
        </div>
        <!-- <button>שלח</button> -->
        <input class="submit" type="submit" value="שלח הודעה">
        <div class="contact-message-container">
            <mat-form-field appearance="fill" class="contact-message-line">
                <mat-label>הודעה לשליחה</mat-label>
                <textarea matInput type="textarea" placeholder="טקסט להודעה.." [formControl]="contactMessage" 
                required name="contactMessage" maxlength="250"
                cdkTextareaAutosize cdkAutosizeMinRows="12" cdkAutosizeMaxRows="15"></textarea>
                <mat-error *ngIf="contactMessage.invalid">{{getContactMessageErrorMessage()}}</mat-error>
            </mat-form-field>
        </div>
</form>

Код машинописного текста:

import { Component } from '@angular/core';
import { FormControl, Validators, NgForm} from '@angular/forms';


@Component({
  selector: 'app-contact-heb',
  templateUrl: './contact-heb.component.html',
  styleUrls: ['./contact-heb.component.css']
})
export class ContactHebComponent {
  firstName = new FormControl('', [Validators.pattern("^[a-zA-Z\u0590-\u05fe]{2,20}")]);
  lastName = new FormControl('', [Validators.pattern("^[a-zA-Z\u0590-\u05fe]{2,20}")]);
  telephone = new FormControl('', [Validators.pattern("[0-9\+\-]{9,13}")]);
  contactMessage = new FormControl('', [Validators.pattern("^[a-zA-Z0-9\u0590-\u05fe \.,]{2,100}")]);

  getFirstNameErrorMessage() {
    if (this.firstName.hasError('pattern')){
      return 'פורמט שם אינו חוקי';
    }
    }

    getLastNameErrorMessage() {
      if (this.lastName.hasError('pattern')){
        return 'פורמט שם אינו חוקי';
      }
      }


  getTelephoneErrorMessage() {
    if (this.telephone.hasError('pattern')) { // pay attention: lower case because html 
      return 'נא הזן טלפון תקין';
    }

  }
  getContactMessageErrorMessage(){
    if (this.contactMessage.hasError('pattern')) {
      return ('בשדה ההודעה מותרים אותיות, ספרות, פסיקים ונקודות בלבד')
    }
  }

}
...